ceruleanbot
/bot/__init__.py
봇으로도 가벼운 편집기로도 사용할 수 있음. 미디어위키 편집기, GUI 봇. 나무위키는 난이도가 급상승이라 나무위키 편집기는 안 만들 예정.
MIT License
https://www.geeksforgeeks.org/how-to-use-html-in-tkinter-python/
https://bio-info.tistory.com/46
https://github.com/martin-majlis/Wikipedia-API/blob/master/wikipediaapi/__init__.py
wget 'https://librewiki.net/wiki/사용자:Cerulean/소스/ceruleanbot/init.py?action=raw' -O init.py
사용자:하늘/양식/init.py GUI 부분 CLI 부분 독립 시키기
로그인 GUI 구현 안함
- 페이지 객체에 분류 정보 딕셔너리 추가 query로 조회. 아니면 그냥 텍스트에서 분류 찾기. 가칭 전자는 깊은 분류 후자는 얕은 분류(onlyinclude includeonly를 생각하지 않음)
- tkinter 안쓰고 장고로 확장. 브라우저 필요. 지금은 아직 배우지 않아서 봇부터 보완하기.
- cli 모드
- 반자동 <-> 자동
- 분류 바꾸기
- 분류 이름을 바꿨을 때 분류 바꾸기
- 분류 정렬키
- 정규식 치환모드, 단순 텍스트 치환모드, 미리보기 기능.
- 틀 치환
#!/usr/bin/python3
import tkinter as tk
import tkinter.ttk as ttk
from bot import *
wikisite = wiki('https://librewiki.net', apiprefix='')
print(wikisite)
def setText(self, text): # for tk obj
self.delete(1.0, tk.END)
self.insert(1.0, text)
class mainframe:
def __init__(self) -> None:
self.window = tk.Tk()
self.style = ttk.Style(self.window)
#for item in self.style.theme_names():
# print(item)
self.style.theme_use('clam')
self.window.title("cerulWikiBot")
self.label = tk.Label(self.window, text='문서 제목 입력하고 소스보기', height=2); self.label.pack()
self.text = tk.Text(self.window)
self.text.focus(); self.text.pack()
self.entry = tk.Entry(self.window, width=50)
self.entry.pack()
self.viewsource = ttk.Button(
self.window, text='소스 보기', command=self.searchdoc)
self.viewsource.pack(pady=0, side='left')
self.savebutton = ttk.Button(
self.window, text='편집 저장', command=self.save) # 미구현
self.savebutton.pack(pady=0, side='left')
self.addtolistb = ttk.Button(
self.window, text='작업 목록에 추가', command=self.addtolist) # 미구현
self.addtolistb.pack(pady=0, side='left')
self.loginb = ttk.Button(self.window, text='로그인', command=self.login)
self.loginb.pack(pady=0, side='left')
self.logoutb = ttk.Button(self.window, text='로그아웃', command=self.logout)
self.logoutb.pack(pady=0, side='left')
self.window.mainloop()
def login(self):
wikisite.login('cerulean', 'zcxv')
def logout(self):
wikisite.logout()
def searchdoc(self):
self.title = self.entry.get()
if self.title == '':
self.label.configure(text='?')
setText(self.text, '?')
else:
self.label.configure(text=self.title)
wikisite.setpage(self.title)
wikisite.page.get()
setText(self.text, wikisite.page.cont)
def save(self):
wikisite.page.cont = self.text.get(1.0, tk.END)
wikisite.page.save()
def addtolist(self):
wikisite.addpage()
#def __del__(self):
# wikisite.__del__()
window = mainframe()