사용자:하늘/양식

< 사용자:하늘
하늘 (토론 | 기여)님의 2021년 11월 28일 (일) 18:46 판

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 구현 안함

#!/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()