편집 필터 기록

편집 필터 둘러보기 (처음 | 최근 필터의 바뀜 | 과거의 편집 검토하기 | 편집 필터 기록)
기록 49,297에 대한 자세한 정보

2022년 9월 28일 (수) 21:54: 하늘 (토론 | 기여)님이 사용자:하늘/소스/hanja-list.py에서 "edit" 동작을 수행하여 필터 0이(가) 작동했습니다. 조치: 태그; 필터 설명: (검사)

편집에서 바뀐 내용

<del>스파게티 코드</del>
{{삭제|}}
 
<syntaxhighlight lang="python3">
from bot import Site
import re, time
 
def update_list(event, context):
    hours = 1
 
    libre = Site('https://librewiki.net', apiprefix='')
 
    def categoryrevisions(hours):
        localtime = time.time()
        if hours is None: #디버그 완료 후? == True -> 디버그 이후 최초 작업
            pretime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(0))
            currtime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(localtime))
        else:
            pretime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(localtime - 60 * 60 * hours))
            currtime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(localtime))
       
        return libre.pages_in_category_sorted('한자/문자', '1600', startdate=pretime, enddate=currtime)
   
 
    docs = categoryrevisions(hours)
    time.sleep(1)
   
    if len(docs) == 0:
        print(f'No revisions for {hours} hour.')
        return
 
    eduHanja = ("佳", "假", "價", "加", "可", "家", "歌", "街", "暇", "架", "各", "脚", "角", "刻", "却", "覺", "閣", "干", "看", "間", "刊", "姦", "幹", "懇", "簡", "肝", "渴", "感", "敢", "減", "甘", "監", "鑑", "甲", "強", "江", "講", "降", "剛", "康", "綱", "鋼", "個", "改", "皆", "開", "介", "慨", "槪", "蓋", "客", "更", "去", "居", "巨", "擧", "車", "拒", "據", "距", "乾", "建", "件", "健", "乞", "傑", "儉", "劍", "檢", "擊", "格", "激", "隔", "堅", "犬", "見", "牽", "絹", "肩", "遣", "決", "潔", "結", "缺", "兼", "謙", "京", "庚", "慶", "敬", "景", "競", "經", "耕", "輕", "驚", "傾", "卿", "境", "徑", "硬", "竟", "警", "鏡", "頃", "季", "溪", "界", "癸", "計", "鷄", "係", "啓", "契", "戒", "桂", "械", "系", "繫", "繼", "階", "古", "告", "固", "故", "考", "苦", "高", "姑", "孤", "庫", "枯", "稿", "顧", "鼓", "曲", "穀", "谷", "哭", "困", "坤", "骨", "公", "共", "功", "工", "空", "供", "孔", "恐", "恭", "攻", "貢", "果", "科", "課", "過", "寡", "誇", "郭", "官", "觀", "關", "冠", "寬", "慣", "管", "貫", "館", "光", "廣", "狂", "鑛", "掛", "塊", "壞", "怪", "愧", "交", "敎", "校", "橋", "巧", "矯", "較", "郊", "久", "九", "口", "句", "救", "求", "究", "舊", "丘", "俱", "具", "區", "懼", "拘", "構", "狗", "球", "苟", "驅", "龜", "國", "局", "菊", "君", "軍", "郡", "群", "屈", "弓", "宮", "窮", "勸", "卷", "權", "券", "拳", "厥", "軌", "歸", "貴", "鬼", "叫", "糾", "規", "均", "菌", "極", "克", "劇", "勤", "根", "近", "僅", "斤", "謹", "今", "禁", "金", "琴", "禽", "錦", "及", "急", "給", "級", "肯", "其", "基", "己", "幾", "技", "旣", "期", "氣", "記", "起", "企", "器", "奇", "寄", "忌", "旗", "棄", "機", "欺", "畿", "祈", "紀", "豈", "飢", "騎", "緊", "吉", "那", "諾", "暖", "難", "南", "男", "納", "娘", "乃", "內", "奈", "耐", "女", "年", "念", "寧", "怒", "努", "奴", "農", "惱", "腦", "能", "泥", "多", "茶", "丹", "但", "單", "短", "端", "團", "壇", "斷", "旦", "檀", "段", "達", "談", "擔", "淡", "答", "畓", "踏", "堂", "當", "唐", "糖", "黨", "代", "大", "對", "待", "帶", "臺", "貸", "隊", "德", "刀", "到", "圖", "島", "度", "徒", "道", "都", "倒", "塗", "導", "挑", "桃", "渡", "盜", "稻", "跳", "逃", "途", "陶", "獨", "讀", "毒", "督", "篤", "敦", "豚", "突", "冬", "動", "同", "東", "洞", "童", "凍", "銅", "斗", "豆", "頭", "屯", "鈍", "得", "燈", "登", "等", "騰", "羅", "樂", "落", "絡", "卵", "亂", "欄", "蘭", "濫", "覽", "浪", "郞", "廊", "來", "冷", "掠", "略", "兩", "涼", "良", "量", "梁", "糧", "諒", "勵", "慮", "麗", "力", "歷", "曆", "練", "連", "憐", "戀", "聯", "蓮", "鍊", "列", "烈", "劣", "裂", "廉", "獵", "令", "領", "嶺", "零", "靈", "例", "禮", "隷", "勞", "老", "路", "露", "爐", "綠", "祿", "錄", "鹿", "論", "弄", "賴", "雷", "料", "了", "僚", "龍", "屢", "樓", "淚", "漏", "累", "柳", "流", "留", "類", "六", "陸", "倫", "輪", "律", "栗", "率", "隆", "陵", "利", "李", "理", "里", "吏", "履", "梨", "裏", "離", "鄰", "林", "臨", "立", "馬", "磨", "麻", "莫", "幕", "漠", "晚", "滿", "萬", "慢", "漫", "末", "亡", "忙", "忘", "望", "妄", "罔", "茫", "妹", "每", "買", "賣", "埋", "媒", "梅", "麥", "脈", "孟", "猛", "盟", "盲", "免", "勉", "眠", "面", "綿", "滅", "名", "命", "明", "鳴", "冥", "銘", "暮", "母", "毛", "侮", "冒", "募", "慕", "某", "模", "謀", "貌", "木", "目", "牧", "睦", "沒", "夢", "蒙", "卯", "妙", "墓", "廟", "苗", "務", "戊", "武", "無", "舞", "茂", "貿", "霧", "墨", "默", "問", "文", "聞", "門", "勿", "物", "味", "尾", "未", "米", "美", "微", "眉", "迷", "民", "憫", "敏", "密", "蜜", "朴", "博", "拍", "泊", "薄", "迫", "半", "反", "飯", "伴", "叛", "班", "盤", "般", "返", "發", "拔", "髮", "房", "放", "方", "訪", "防", "倣", "傍", "妨", "芳", "邦", "拜", "杯", "倍", "培", "排", "背", "輩", "配", "白", "百", "伯", "番", "煩", "繁", "飜", "伐", "罰", "凡", "犯", "範", "法", "壁", "碧", "變", "辨", "辯", "邊", "別", "丙", "兵", "病", "屛", "竝", "保", "報", "步", "寶", "普", "補", "譜", "伏", "復", "服", "福", "卜", "腹", "複", "覆", "本", "奉", "逢", "封", "峯", "蜂", "鳳", "否", "夫", "婦", "富", "扶", "浮", "父", "部", "付", "副", "府", "符", "簿", "腐", "負", "賦", "赴", "附", "北", "分", "墳", "奔", "奮", "憤", "粉", "紛", "不", "佛", "拂", "朋", "崩", "備", "比", "悲", "非", "飛", "鼻", "卑", "妃", "婢", "批", "碑", "祕", "肥", "費", "貧", "賓", "頻", "氷", "聘", "事", "仕", "使", "史", "四", "士", "寺", "巳", "射", "師", "思", "死", "私", "絲", "舍", "謝", "似", "司", "寫", "捨", "斜", "斯", "査", "沙", "祀", "社", "蛇", "詐", "詞", "賜", "辭", "邪", "削", "朔", "山", "散", "産", "算", "殺", "三", "上", "傷", "商", "喪", "尙", "常", "想", "相", "賞", "霜", "像", "償", "嘗", "床", "桑", "狀", "祥", "裳", "詳", "象", "塞", "色", "索", "生", "序", "暑", "書", "西", "庶", "徐", "恕", "敍", "緖", "署", "誓", "逝", "夕", "席", "惜", "昔", "石", "析", "釋", "仙", "先", "善", "線", "船", "選", "鮮", "宣", "旋", "禪", "舌", "設", "說", "雪", "攝", "涉", "城", "姓", "性", "成", "星", "盛", "省", "聖", "聲", "誠", "世", "勢", "歲", "洗", "稅", "細", "小", "少", "所", "消", "笑", "素", "召", "掃", "昭", "燒", "疏", "蔬", "蘇", "訴", "騷", "俗", "續", "速", "屬", "束", "粟", "孫", "損", "松", "送", "訟", "誦", "頌", "刷", "鎖", "𮕩", "修", "受", "壽", "守", "愁", "手", "授", "收", "數", "樹", "水", "秀", "誰", "雖", "須", "首", "囚", "垂", "帥", "搜", "殊", "獸", "睡", "輸", "遂", "隨", "需", "叔", "宿", "淑", "孰", "熟", "肅", "純", "順", "巡", "循", "旬", "殉", "瞬", "脣", "戌", "術", "述", "崇", "拾", "習", "濕", "襲", "乘", "勝", "承", "僧", "昇", "始", "市", "施", "是", "時", "示", "視", "詩", "試", "侍", "矢", "式", "植", "識", "食", "息", "飾", "信", "新", "申", "神", "臣", "身", "辛", "伸", "愼", "晨", "失", "室", "實", "心", "深", "甚", "審", "尋", "十", "雙", "氏", "兒", "我", "亞", "牙", "芽", "雅", "餓", "惡", "岳", "安", "案", "眼", "顔", "岸", "雁", "謁", "巖", "暗", "壓", "押", "仰", "央", "殃", "哀", "愛", "涯", "厄", "額", "也", "夜", "野", "耶", "弱", "約", "若", "藥", "躍", "揚", "洋", "羊", "讓", "陽", "養", "壤", "楊", "樣", "於", "漁", "語", "魚", "御", "億", "憶", "抑", "言", "焉", "嚴", "業", "余", "如", "汝", "與", "餘", "予", "輿", "亦", "易", "逆", "域", "役", "疫", "譯", "驛", "然", "煙", "硏", "宴", "延", "沿", "演", "燃", "燕", "緣", "軟", "鉛", "悅", "熱", "閱", "炎", "染", "鹽", "葉", "榮", "永", "英", "迎", "影", "映", "泳", "營", "詠", "藝", "譽", "銳", "豫", "五", "午", "吾", "悟", "烏", "誤", "傲", "嗚", "娛", "汚", "屋", "玉", "獄", "溫", "擁", "翁", "瓦", "臥", "完", "緩", "曰", "往", "王", "外", "畏", "要", "搖", "腰", "謠", "遙", "欲", "浴", "慾", "辱", "勇", "容", "用", "庸", "于", "又", "友", "右", "宇", "尤", "憂", "牛", "遇", "雨", "偶", "優", "愚", "羽", "郵", "云", "運", "雲", "韻", "雄", "元", "原", "圓", "園", "怨", "遠", "願", "員", "援", "源", "院", "月", "越", "位", "偉", "危", "威", "爲", "僞", "圍", "委", "慰", "緯", "胃", "衛", "謂", "違", "唯", "幼", "有", "柔", "油", "猶", "由", "遊", "遺", "酉", "乳", "儒", "幽", "悠", "惟", "愈", "維", "裕", "誘", "肉", "育", "潤", "閏", "恩", "銀", "隱", "乙", "吟", "陰", "音", "飮", "淫", "泣", "邑", "應", "凝", "依", "意", "矣", "義", "衣", "議", "醫", "儀", "宜", "疑", "二", "以", "已", "異", "移", "而", "耳", "夷", "益", "翼", "人", "仁", "印", "因", "寅", "引", "忍", "認", "姻", "一", "日", "逸", "壬", "任", "賃", "入", "姊", "子", "字", "慈", "者", "自", "刺", "姿", "恣", "紫", "茲", "資", "作", "昨", "爵", "酌", "殘", "暫", "潛", "雜", "場", "壯", "將", "章", "長", "丈", "墻", "奬", "帳", "張", "掌", "粧", "腸", "臟", "莊", "葬", "藏", "裝", "障", "再", "哉", "在", "才", "材", "栽", "財", "宰", "災", "裁", "載", "爭", "低", "著", "貯", "底", "抵", "敵", "的", "赤", "適", "寂", "摘", "滴", "積", "籍", "績", "賊", "跡", "傳", "全", "典", "前", "展", "戰", "田", "錢", "電", "專", "殿", "轉", "節", "絕", "切", "折", "竊", "店", "占", "漸", "點", "接", "蝶", "丁", "井", "停", "定", "庭", "情", "政", "正", "淨", "精", "貞", "靜", "頂", "亭", "廷", "征", "整", "程", "訂", "帝", "弟", "祭", "第", "製", "諸", "除", "題", "制", "堤", "提", "濟", "際", "齊", "兆", "助", "早", "朝", "祖", "調", "造", "鳥", "弔", "操", "條", "潮", "照", "燥", "租", "組", "族", "足", "存", "尊", "卒", "拙", "宗", "從", "種", "終", "鐘", "縱", "坐", "左", "佐", "座", "罪", "主", "住", "宙", "晝", "朱", "注", "走", "酒", "周", "奏", "州", "柱", "株", "洲", "珠", "舟", "鑄", "竹", "俊", "準", "遵", "中", "衆", "重", "仲", "卽", "增", "曾", "證", "憎", "症", "蒸", "贈", "之", "只", "地", "志", "持", "指", "支", "枝", "止", "知", "紙", "至", "智", "池", "誌", "遲", "直", "織", "職", "盡", "眞", "辰", "進", "振", "珍", "鎭", "陣", "陳", "震", "質", "姪", "疾", "秩", "執", "集", "徵", "懲", "且", "借", "次", "此", "差", "着", "捉", "錯", "讚", "贊", "察", "參", "慘", "慙", "唱", "昌", "窓", "倉", "創", "暢", "蒼", "採", "菜", "債", "彩", "冊", "責", "策", "妻", "處", "尺", "戚", "拓", "斥", "千", "天", "川", "泉", "淺", "薦", "賤", "踐", "遷", "鐵", "哲", "徹", "尖", "添", "妾", "晴", "淸", "聽", "請", "靑", "廳", "體", "替", "滯", "逮", "遞", "初", "招", "草", "抄", "礎", "秒", "肖", "超", "促", "燭", "觸", "寸", "村", "總", "聰", "銃", "最", "催", "推", "秋", "追", "抽", "醜", "丑", "祝", "畜", "築", "縮", "蓄", "逐", "春", "出", "充", "忠", "蟲", "衝", "取", "吹", "就", "臭", "趣", "醉", "側", "測", "層", "治", "致", "齒", "値", "恥", "置", "則", "親", "七", "漆", "針", "侵", "寢", "枕", "沈", "浸", "稱", "快", "他", "打", "墮", "妥", "卓", "托", "濁", "濯", "彈", "歎", "炭", "誕", "脫", "奪", "探", "貪", "塔", "湯", "太", "泰", "怠", "態", "殆", "宅", "擇", "澤", "土", "吐", "討", "統", "通", "痛", "退", "投", "透", "鬪", "特", "波", "破", "把", "播", "派", "罷", "頗", "判", "板", "版", "販", "八", "敗", "貝", "便", "片", "篇", "偏", "編", "遍", "平", "評", "閉", "幣", "廢", "弊", "肺", "蔽", "布", "抱", "包", "捕", "浦", "胞", "飽", "暴", "幅", "爆", "表", "標", "漂", "票", "品", "豐", "風", "彼", "皮", "疲", "被", "避", "匹", "必", "筆", "畢", "下", "何", "夏", "河", "賀", "荷", "學", "鶴", "寒", "恨", "漢", "閑", "限", "韓", "旱", "汗", "割", "含", "咸", "陷", "合", "恒", "巷", "抗", "港", "航", "項", "亥", "害", "海", "解", "奚", "該", "核", "幸", "行", "向", "鄕", "香", "享", "響", "虛", "許", "憲", "獻", "軒", "險", "驗", "革", "現", "賢", "懸", "玄", "絃", "縣", "顯", "血", "穴", "嫌", "協", "脅", "兄", "刑", "形", "亨", "螢", "衡", "惠", "兮", "慧", "乎", "呼", "好", "戶", "湖", "虎", "號", "互", "毫", "浩", "胡", "護", "豪", "或", "惑", "婚", "混", "昏", "魂", "忽", "紅", "弘", "洪", "鴻", "化", "和", "火", "畫", "花", "華", "話", "貨", "禍", "禾", "擴", "確", "穫", "患", "歡", "丸", "換", "環", "還", "活", "皇", "黃", "況", "荒", "回", "會", "悔", "懷", "劃", "獲", "橫", "孝", "效", "曉", "厚", "後", "侯", "候", "訓", "毁", "揮", "輝", "休", "携", "凶", "胸", "黑", "吸", "興", "喜", "希", "戲", "稀")
    libre.login('Caeruleum', 'Caeruleum@*********')
    time.sleep(1)
    libre.page << '시리즈:리브레 한자사전/음으로 찾기'
 
    hanja_list_source = libre.page
    hanja_list_pre_source: str = libre.page.cont
    hanja_list_source.extract('<!--{{-->', '<!--}}-->')
    hanja_list_source.replace('\n|', '\n').remove_re(r'\{\|.*\>\n').remove('}\n').remove_re(r'^\n').remove_re(r'$\n')
 
    def tolist(listText: str, unclassified: bool = False) -> list:
        listText = listText.split("\n")
        toreturnlist = []
        for line in listText:
            if line.find("==") != -1:
                line = line.replace("==", "")
                toreturnlist.append([line])
            else:
                char = re.search(r"\[\[(.*)\]\]", line)
                if char is not None: char = char.group(1).strip()
 
                mean = re.search("</i>(.*) <i>", line)
                if mean is not None: mean = mean.group(1).strip()
 
                sound = re.search("<i>(.*)</i>", line)
                if sound is not None: sound = sound.group(1).strip()
 
                eduext = re.search("<i class=\"(.*)\">", line)
                if eduext is not None: eduext = eduext.group(1).strip()
 
                if char == mean == sound == eduext is None:
                    pass
                else:
                    toreturnlist.append([char, mean, sound, eduext, unclassified])
        return toreturnlist
    hanja_list_source: str = hanja_list_source.cont
    hanja_list_etc = hanja_list_source[hanja_list_source.find("==미상/미분류=="):]
    hanja_list_source = hanja_list_source.replace(hanja_list_etc, '')[:-1]
    hanja_list = tolist(hanja_list_source)
    hanja_list_etc = tolist(hanja_list_etc, True)
 
    def newerRevisions(docs):
        result = []
        for title in docs:
            libre.page << title
            text = libre.page.cont
            hanja:str
            mean: str = None
            sound: str = None
            unclassified: bool = False
 
            hanja = re.search('한자 *= *([^|]*)', text).group(1).strip().replace('ː', '')
 
            mean_sound: str = re.search('뜻 소리 *= *([^|]*)', text)
            if mean_sound:
                mean_sound = mean_sound.group(1).strip()
                mean = mean_sound.split(' [')[0]
                sound = mean_sound[mean_sound.find('['):mean_sound.find(']')]
            else:
                mean = re.search('뜻 *= *([^|]*)', text).group(1).strip().replace('ː', '')
                sound = re.search('소리 *= *([^|]*)', text).group(1).strip().replace('ː', '')
 
            if hanja in eduHanja:
                eduext = 'edu'
            else:
                eduext = 'ext'
                if ord(hanja) > 65535:
                    hanja = hex(ord(hanja)).upper().replace('0X', 'U+') + '|' + hanja
 
            if sound != '-':
                defaultsort = libre.api_with_url(f"https://librewiki.net/api.php?action=query&format=json&prop=pageprops&titles={title}&redirects=1&utf8=1&formatversion=2")["query"]["pages"][0]["pageprops"]["defaultsort"]
                # 기본 정렬키
                if defaultsort == '-': #미분류
                    unclassified = True
            elif sound == '-':
                unclassified = True
 
            # 결과 리스트에 리스트 추가
 
            result.append([hanja, mean, sound, eduext, unclassified])
        time.sleep(1)
        return result
 
    toput_list_origin = newerRevisions(docs)
    toput_list = []
    toput_list_etc = []
 
    ''' etc/일반 리스트 분리하기 '''
    for item in toput_list_origin:
        if item[4] == True:
            toput_list_etc.append(item)
        else:
            toput_list.append(item)
 
    '''리스트의 요소를 대체하거나 끼워넣는 함수'''
    def putitem(toput, list_):
        if toput in list_:
            return
        for item in list_:
            if item[0] == toput[0]:
                list_[list_.index(item)] = toput
        list_.append(toput)
 
    '''리스트의 요소 대체'''
    for item in toput_list:
        putitem(item, hanja_list)
    for item in toput_list_etc:
        putitem(item, hanja_list_etc)
 
    '''리스트 정렬'''
    hanja_list = sorted(hanja_list, key=lambda inner: (inner[2][0], inner[0]) if len(inner) > 1 else (inner[0], ''))
    hanja_list_etc = sorted(hanja_list_etc, key=lambda inner: (inner[2][0], inner[0]) if len(inner) > 1 else (inner[0], ''))
 
    '''==미상/미분류== 맨 위로 놓기'''
    for item in hanja_list_etc:
        if len(item) == 1:
            hanja_list_etc.remove(item)
            hanja_list_etc.insert(0, item)
            break
 
    ''' 리스트 합치기'''
    result = hanja_list + hanja_list_etc
 
    tosavelist = []
    prevent_hanja = ''
    last_item = result[-1]
    list_start = True
    for item in result:
        if len(item) > 1:
            [hanja, mean, sound, eduext, unclassified] = item
            if prevent_hanja == hanja: # 이전과 내용이 같을 때
                prevent_hanja = hanja
            else:
                tosavelist.append(f'|<i class="{eduext}">[[{hanja}]]</i>{mean} <i>{sound}</i>')
                if item == last_item:
                    tosavelist.append('|}')
        elif len(item) == 1:
            [sound] = item
            if list_start is not True:
                tosavelist.append("|}")
                list_start = True
            tosavelist.append("==" + sound + "==")
            if list_start is True:
                tosavelist.append('{| class="hanja-list"')
                list_start = False
 
    tosavelist = '\n'.join(tosavelist)
    from bot import find_put_cont
    hanja_list_tosave = find_put_cont(hanja_list_pre_source, '<!--{{-->', tosavelist, '<!--}}-->')
    if hanja_list_pre_source == hanja_list_tosave:
        print('변경사항 없음')
        return '변경사항 없음'
    else:
        time.sleep(5)
        libre.page.set('시리즈:리브레 한자사전/음으로 찾기')
        libre.page.cont = hanja_list_tosave
        libre.page.save('한자 목록 업데이트')
        #libre.page.print()
    libre.logout()
 
    return 'done!'
 
if __name__ == "__main__":
    update_list('adsf', 'asdf')
 
</syntaxhighlight>

명령 변수

변수
사용자의 편집 수 (user_editcount)
34433
사용자 계정 이름 (user_name)
'하늘'
사용자 계정 만든 후 지난 시간 (user_age)
85018187
사용자 권한 그룹 (자동으로 부여된 권한 포함) (user_groups)
[ 0 => '*', 1 => 'user', 2 => 'autoconfirmed' ]
문서 ID (page_id)
178606
문서 이름공간 (page_namespace)
2
(이름공간을 뺀) 문서 제목 (page_title)
'하늘/소스/hanja-list.py'
전체 문서 제목 (page_prefixedtitle)
'사용자:하늘/소스/hanja-list.py'
동작 (action)
'edit'
편집 요약/이유 (summary)
''
이전 콘텐츠 모델 (old_content_model)
'wikitext'
새 콘텐츠 모델 (new_content_model)
'wikitext'
편집 전 과거 문서의 위키텍스트 (old_wikitext)
'<del>스파게티 코드</del> <syntaxhighlight lang="python3"> from bot import Site import re, time def update_list(event, context): hours = 1 libre = Site('https://librewiki.net', apiprefix='') def categoryrevisions(hours): localtime = time.time() if hours is None: #디버그 완료 후? == True -> 디버그 이후 최초 작업 pretime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(0)) currtime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(localtime)) else: pretime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(localtime - 60 * 60 * hours)) currtime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(localtime)) return libre.pages_in_category_sorted('한자/문자', '1600', startdate=pretime, enddate=currtime) docs = categoryrevisions(hours) time.sleep(1) if len(docs) == 0: print(f'No revisions for {hours} hour.') return eduHanja = ("佳", "假", "價", "加", "可", "家", "歌", "街", "暇", "架", "各", "脚", "角", "刻", "却", "覺", "閣", "干", "看", "間", "刊", "姦", "幹", "懇", "簡", "肝", "渴", "感", "敢", "減", "甘", "監", "鑑", "甲", "強", "江", "講", "降", "剛", "康", "綱", "鋼", "個", "改", "皆", "開", "介", "慨", "槪", "蓋", "客", "更", "去", "居", "巨", "擧", "車", "拒", "據", "距", "乾", "建", "件", "健", "乞", "傑", "儉", "劍", "檢", "擊", "格", "激", "隔", "堅", "犬", "見", "牽", "絹", "肩", "遣", "決", "潔", "結", "缺", "兼", "謙", "京", "庚", "慶", "敬", "景", "競", "經", "耕", "輕", "驚", "傾", "卿", "境", "徑", "硬", "竟", "警", "鏡", "頃", "季", "溪", "界", "癸", "計", "鷄", "係", "啓", "契", "戒", "桂", "械", "系", "繫", "繼", "階", "古", "告", "固", "故", "考", "苦", "高", "姑", "孤", "庫", "枯", "稿", "顧", "鼓", "曲", "穀", "谷", "哭", "困", "坤", "骨", "公", "共", "功", "工", "空", "供", "孔", "恐", "恭", "攻", "貢", "果", "科", "課", "過", "寡", "誇", "郭", "官", "觀", "關", "冠", "寬", "慣", "管", "貫", "館", "光", "廣", "狂", "鑛", "掛", "塊", "壞", "怪", "愧", "交", "敎", "校", "橋", "巧", "矯", "較", "郊", "久", "九", "口", "句", "救", "求", "究", "舊", "丘", "俱", "具", "區", "懼", "拘", "構", "狗", "球", "苟", "驅", "龜", "國", "局", "菊", "君", "軍", "郡", "群", "屈", "弓", "宮", "窮", "勸", "卷", "權", "券", "拳", "厥", "軌", "歸", "貴", "鬼", "叫", "糾", "規", "均", "菌", "極", "克", "劇", "勤", "根", "近", "僅", "斤", "謹", "今", "禁", "金", "琴", "禽", "錦", "及", "急", "給", "級", "肯", "其", "基", "己", "幾", "技", "旣", "期", "氣", "記", "起", "企", "器", "奇", "寄", "忌", "旗", "棄", "機", "欺", "畿", "祈", "紀", "豈", "飢", "騎", "緊", "吉", "那", "諾", "暖", "難", "南", "男", "納", "娘", "乃", "內", "奈", "耐", "女", "年", "念", "寧", "怒", "努", "奴", "農", "惱", "腦", "能", "泥", "多", "茶", "丹", "但", "單", "短", "端", "團", "壇", "斷", "旦", "檀", "段", "達", "談", "擔", "淡", "答", "畓", "踏", "堂", "當", "唐", "糖", "黨", "代", "大", "對", "待", "帶", "臺", "貸", "隊", "德", "刀", "到", "圖", "島", "度", "徒", "道", "都", "倒", "塗", "導", "挑", "桃", "渡", "盜", "稻", "跳", "逃", "途", "陶", "獨", "讀", "毒", "督", "篤", "敦", "豚", "突", "冬", "動", "同", "東", "洞", "童", "凍", "銅", "斗", "豆", "頭", "屯", "鈍", "得", "燈", "登", "等", "騰", "羅", "樂", "落", "絡", "卵", "亂", "欄", "蘭", "濫", "覽", "浪", "郞", "廊", "來", "冷", "掠", "略", "兩", "涼", "良", "量", "梁", "糧", "諒", "勵", "慮", "麗", "力", "歷", "曆", "練", "連", "憐", "戀", "聯", "蓮", "鍊", "列", "烈", "劣", "裂", "廉", "獵", "令", "領", "嶺", "零", "靈", "例", "禮", "隷", "勞", "老", "路", "露", "爐", "綠", "祿", "錄", "鹿", "論", "弄", "賴", "雷", "料", "了", "僚", "龍", "屢", "樓", "淚", "漏", "累", "柳", "流", "留", "類", "六", "陸", "倫", "輪", "律", "栗", "率", "隆", "陵", "利", "李", "理", "里", "吏", "履", "梨", "裏", "離", "鄰", "林", "臨", "立", "馬", "磨", "麻", "莫", "幕", "漠", "晚", "滿", "萬", "慢", "漫", "末", "亡", "忙", "忘", "望", "妄", "罔", "茫", "妹", "每", "買", "賣", "埋", "媒", "梅", "麥", "脈", "孟", "猛", "盟", "盲", "免", "勉", "眠", "面", "綿", "滅", "名", "命", "明", "鳴", "冥", "銘", "暮", "母", "毛", "侮", "冒", "募", "慕", "某", "模", "謀", "貌", "木", "目", "牧", "睦", "沒", "夢", "蒙", "卯", "妙", "墓", "廟", "苗", "務", "戊", "武", "無", "舞", "茂", "貿", "霧", "墨", "默", "問", "文", "聞", "門", "勿", "物", "味", "尾", "未", "米", "美", "微", "眉", "迷", "民", "憫", "敏", "密", "蜜", "朴", "博", "拍", "泊", "薄", "迫", "半", "反", "飯", "伴", "叛", "班", "盤", "般", "返", "發", "拔", "髮", "房", "放", "方", "訪", "防", "倣", "傍", "妨", "芳", "邦", "拜", "杯", "倍", "培", "排", "背", "輩", "配", "白", "百", "伯", "番", "煩", "繁", "飜", "伐", "罰", "凡", "犯", "範", "法", "壁", "碧", "變", "辨", "辯", "邊", "別", "丙", "兵", "病", "屛", "竝", "保", "報", "步", "寶", "普", "補", "譜", "伏", "復", "服", "福", "卜", "腹", "複", "覆", "本", "奉", "逢", "封", "峯", "蜂", "鳳", "否", "夫", "婦", "富", "扶", "浮", "父", "部", "付", "副", "府", "符", "簿", "腐", "負", "賦", "赴", "附", "北", "分", "墳", "奔", "奮", "憤", "粉", "紛", "不", "佛", "拂", "朋", "崩", "備", "比", "悲", "非", "飛", "鼻", "卑", "妃", "婢", "批", "碑", "祕", "肥", "費", "貧", "賓", "頻", "氷", "聘", "事", "仕", "使", "史", "四", "士", "寺", "巳", "射", "師", "思", "死", "私", "絲", "舍", "謝", "似", "司", "寫", "捨", "斜", "斯", "査", "沙", "祀", "社", "蛇", "詐", "詞", "賜", "辭", "邪", "削", "朔", "山", "散", "産", "算", "殺", "三", "上", "傷", "商", "喪", "尙", "常", "想", "相", "賞", "霜", "像", "償", "嘗", "床", "桑", "狀", "祥", "裳", "詳", "象", "塞", "色", "索", "生", "序", "暑", "書", "西", "庶", "徐", "恕", "敍", "緖", "署", "誓", "逝", "夕", "席", "惜", "昔", "石", "析", "釋", "仙", "先", "善", "線", "船", "選", "鮮", "宣", "旋", "禪", "舌", "設", "說", "雪", "攝", "涉", "城", "姓", "性", "成", "星", "盛", "省", "聖", "聲", "誠", "世", "勢", "歲", "洗", "稅", "細", "小", "少", "所", "消", "笑", "素", "召", "掃", "昭", "燒", "疏", "蔬", "蘇", "訴", "騷", "俗", "續", "速", "屬", "束", "粟", "孫", "損", "松", "送", "訟", "誦", "頌", "刷", "鎖", "𮕩", "修", "受", "壽", "守", "愁", "手", "授", "收", "數", "樹", "水", "秀", "誰", "雖", "須", "首", "囚", "垂", "帥", "搜", "殊", "獸", "睡", "輸", "遂", "隨", "需", "叔", "宿", "淑", "孰", "熟", "肅", "純", "順", "巡", "循", "旬", "殉", "瞬", "脣", "戌", "術", "述", "崇", "拾", "習", "濕", "襲", "乘", "勝", "承", "僧", "昇", "始", "市", "施", "是", "時", "示", "視", "詩", "試", "侍", "矢", "式", "植", "識", "食", "息", "飾", "信", "新", "申", "神", "臣", "身", "辛", "伸", "愼", "晨", "失", "室", "實", "心", "深", "甚", "審", "尋", "十", "雙", "氏", "兒", "我", "亞", "牙", "芽", "雅", "餓", "惡", "岳", "安", "案", "眼", "顔", "岸", "雁", "謁", "巖", "暗", "壓", "押", "仰", "央", "殃", "哀", "愛", "涯", "厄", "額", "也", "夜", "野", "耶", "弱", "約", "若", "藥", "躍", "揚", "洋", "羊", "讓", "陽", "養", "壤", "楊", "樣", "於", "漁", "語", "魚", "御", "億", "憶", "抑", "言", "焉", "嚴", "業", "余", "如", "汝", "與", "餘", "予", "輿", "亦", "易", "逆", "域", "役", "疫", "譯", "驛", "然", "煙", "硏", "宴", "延", "沿", "演", "燃", "燕", "緣", "軟", "鉛", "悅", "熱", "閱", "炎", "染", "鹽", "葉", "榮", "永", "英", "迎", "影", "映", "泳", "營", "詠", "藝", "譽", "銳", "豫", "五", "午", "吾", "悟", "烏", "誤", "傲", "嗚", "娛", "汚", "屋", "玉", "獄", "溫", "擁", "翁", "瓦", "臥", "完", "緩", "曰", "往", "王", "外", "畏", "要", "搖", "腰", "謠", "遙", "欲", "浴", "慾", "辱", "勇", "容", "用", "庸", "于", "又", "友", "右", "宇", "尤", "憂", "牛", "遇", "雨", "偶", "優", "愚", "羽", "郵", "云", "運", "雲", "韻", "雄", "元", "原", "圓", "園", "怨", "遠", "願", "員", "援", "源", "院", "月", "越", "位", "偉", "危", "威", "爲", "僞", "圍", "委", "慰", "緯", "胃", "衛", "謂", "違", "唯", "幼", "有", "柔", "油", "猶", "由", "遊", "遺", "酉", "乳", "儒", "幽", "悠", "惟", "愈", "維", "裕", "誘", "肉", "育", "潤", "閏", "恩", "銀", "隱", "乙", "吟", "陰", "音", "飮", "淫", "泣", "邑", "應", "凝", "依", "意", "矣", "義", "衣", "議", "醫", "儀", "宜", "疑", "二", "以", "已", "異", "移", "而", "耳", "夷", "益", "翼", "人", "仁", "印", "因", "寅", "引", "忍", "認", "姻", "一", "日", "逸", "壬", "任", "賃", "入", "姊", "子", "字", "慈", "者", "自", "刺", "姿", "恣", "紫", "茲", "資", "作", "昨", "爵", "酌", "殘", "暫", "潛", "雜", "場", "壯", "將", "章", "長", "丈", "墻", "奬", "帳", "張", "掌", "粧", "腸", "臟", "莊", "葬", "藏", "裝", "障", "再", "哉", "在", "才", "材", "栽", "財", "宰", "災", "裁", "載", "爭", "低", "著", "貯", "底", "抵", "敵", "的", "赤", "適", "寂", "摘", "滴", "積", "籍", "績", "賊", "跡", "傳", "全", "典", "前", "展", "戰", "田", "錢", "電", "專", "殿", "轉", "節", "絕", "切", "折", "竊", "店", "占", "漸", "點", "接", "蝶", "丁", "井", "停", "定", "庭", "情", "政", "正", "淨", "精", "貞", "靜", "頂", "亭", "廷", "征", "整", "程", "訂", "帝", "弟", "祭", "第", "製", "諸", "除", "題", "制", "堤", "提", "濟", "際", "齊", "兆", "助", "早", "朝", "祖", "調", "造", "鳥", "弔", "操", "條", "潮", "照", "燥", "租", "組", "族", "足", "存", "尊", "卒", "拙", "宗", "從", "種", "終", "鐘", "縱", "坐", "左", "佐", "座", "罪", "主", "住", "宙", "晝", "朱", "注", "走", "酒", "周", "奏", "州", "柱", "株", "洲", "珠", "舟", "鑄", "竹", "俊", "準", "遵", "中", "衆", "重", "仲", "卽", "增", "曾", "證", "憎", "症", "蒸", "贈", "之", "只", "地", "志", "持", "指", "支", "枝", "止", "知", "紙", "至", "智", "池", "誌", "遲", "直", "織", "職", "盡", "眞", "辰", "進", "振", "珍", "鎭", "陣", "陳", "震", "質", "姪", "疾", "秩", "執", "集", "徵", "懲", "且", "借", "次", "此", "差", "着", "捉", "錯", "讚", "贊", "察", "參", "慘", "慙", "唱", "昌", "窓", "倉", "創", "暢", "蒼", "採", "菜", "債", "彩", "冊", "責", "策", "妻", "處", "尺", "戚", "拓", "斥", "千", "天", "川", "泉", "淺", "薦", "賤", "踐", "遷", "鐵", "哲", "徹", "尖", "添", "妾", "晴", "淸", "聽", "請", "靑", "廳", "體", "替", "滯", "逮", "遞", "初", "招", "草", "抄", "礎", "秒", "肖", "超", "促", "燭", "觸", "寸", "村", "總", "聰", "銃", "最", "催", "推", "秋", "追", "抽", "醜", "丑", "祝", "畜", "築", "縮", "蓄", "逐", "春", "出", "充", "忠", "蟲", "衝", "取", "吹", "就", "臭", "趣", "醉", "側", "測", "層", "治", "致", "齒", "値", "恥", "置", "則", "親", "七", "漆", "針", "侵", "寢", "枕", "沈", "浸", "稱", "快", "他", "打", "墮", "妥", "卓", "托", "濁", "濯", "彈", "歎", "炭", "誕", "脫", "奪", "探", "貪", "塔", "湯", "太", "泰", "怠", "態", "殆", "宅", "擇", "澤", "土", "吐", "討", "統", "通", "痛", "退", "投", "透", "鬪", "特", "波", "破", "把", "播", "派", "罷", "頗", "判", "板", "版", "販", "八", "敗", "貝", "便", "片", "篇", "偏", "編", "遍", "平", "評", "閉", "幣", "廢", "弊", "肺", "蔽", "布", "抱", "包", "捕", "浦", "胞", "飽", "暴", "幅", "爆", "表", "標", "漂", "票", "品", "豐", "風", "彼", "皮", "疲", "被", "避", "匹", "必", "筆", "畢", "下", "何", "夏", "河", "賀", "荷", "學", "鶴", "寒", "恨", "漢", "閑", "限", "韓", "旱", "汗", "割", "含", "咸", "陷", "合", "恒", "巷", "抗", "港", "航", "項", "亥", "害", "海", "解", "奚", "該", "核", "幸", "行", "向", "鄕", "香", "享", "響", "虛", "許", "憲", "獻", "軒", "險", "驗", "革", "現", "賢", "懸", "玄", "絃", "縣", "顯", "血", "穴", "嫌", "協", "脅", "兄", "刑", "形", "亨", "螢", "衡", "惠", "兮", "慧", "乎", "呼", "好", "戶", "湖", "虎", "號", "互", "毫", "浩", "胡", "護", "豪", "或", "惑", "婚", "混", "昏", "魂", "忽", "紅", "弘", "洪", "鴻", "化", "和", "火", "畫", "花", "華", "話", "貨", "禍", "禾", "擴", "確", "穫", "患", "歡", "丸", "換", "環", "還", "活", "皇", "黃", "況", "荒", "回", "會", "悔", "懷", "劃", "獲", "橫", "孝", "效", "曉", "厚", "後", "侯", "候", "訓", "毁", "揮", "輝", "休", "携", "凶", "胸", "黑", "吸", "興", "喜", "希", "戲", "稀") libre.login('Caeruleum', 'Caeruleum@*********') time.sleep(1) libre.page << '시리즈:리브레 한자사전/음으로 찾기' hanja_list_source = libre.page hanja_list_pre_source: str = libre.page.cont hanja_list_source.extract('<!--{{-->', '<!--}}-->') hanja_list_source.replace('\n|', '\n').remove_re(r'\{\|.*\>\n').remove('}\n').remove_re(r'^\n').remove_re(r'$\n') def tolist(listText: str, unclassified: bool = False) -> list: listText = listText.split("\n") toreturnlist = [] for line in listText: if line.find("==") != -1: line = line.replace("==", "") toreturnlist.append([line]) else: char = re.search(r"\[\[(.*)\]\]", line) if char is not None: char = char.group(1).strip() mean = re.search("</i>(.*) <i>", line) if mean is not None: mean = mean.group(1).strip() sound = re.search("<i>(.*)</i>", line) if sound is not None: sound = sound.group(1).strip() eduext = re.search("<i class=\"(.*)\">", line) if eduext is not None: eduext = eduext.group(1).strip() if char == mean == sound == eduext is None: pass else: toreturnlist.append([char, mean, sound, eduext, unclassified]) return toreturnlist hanja_list_source: str = hanja_list_source.cont hanja_list_etc = hanja_list_source[hanja_list_source.find("==미상/미분류=="):] hanja_list_source = hanja_list_source.replace(hanja_list_etc, '')[:-1] hanja_list = tolist(hanja_list_source) hanja_list_etc = tolist(hanja_list_etc, True) def newerRevisions(docs): result = [] for title in docs: libre.page << title text = libre.page.cont hanja:str mean: str = None sound: str = None unclassified: bool = False hanja = re.search('한자 *= *([^|]*)', text).group(1).strip().replace('ː', '') mean_sound: str = re.search('뜻 소리 *= *([^|]*)', text) if mean_sound: mean_sound = mean_sound.group(1).strip() mean = mean_sound.split(' [')[0] sound = mean_sound[mean_sound.find('['):mean_sound.find(']')] else: mean = re.search('뜻 *= *([^|]*)', text).group(1).strip().replace('ː', '') sound = re.search('소리 *= *([^|]*)', text).group(1).strip().replace('ː', '') if hanja in eduHanja: eduext = 'edu' else: eduext = 'ext' if ord(hanja) > 65535: hanja = hex(ord(hanja)).upper().replace('0X', 'U+') + '|' + hanja if sound != '-': defaultsort = libre.api_with_url(f"https://librewiki.net/api.php?action=query&format=json&prop=pageprops&titles={title}&redirects=1&utf8=1&formatversion=2")["query"]["pages"][0]["pageprops"]["defaultsort"] # 기본 정렬키 if defaultsort == '-': #미분류 unclassified = True elif sound == '-': unclassified = True # 결과 리스트에 리스트 추가 result.append([hanja, mean, sound, eduext, unclassified]) time.sleep(1) return result toput_list_origin = newerRevisions(docs) toput_list = [] toput_list_etc = [] ''' etc/일반 리스트 분리하기 ''' for item in toput_list_origin: if item[4] == True: toput_list_etc.append(item) else: toput_list.append(item) '''리스트의 요소를 대체하거나 끼워넣는 함수''' def putitem(toput, list_): if toput in list_: return for item in list_: if item[0] == toput[0]: list_[list_.index(item)] = toput list_.append(toput) '''리스트의 요소 대체''' for item in toput_list: putitem(item, hanja_list) for item in toput_list_etc: putitem(item, hanja_list_etc) '''리스트 정렬''' hanja_list = sorted(hanja_list, key=lambda inner: (inner[2][0], inner[0]) if len(inner) > 1 else (inner[0], '')) hanja_list_etc = sorted(hanja_list_etc, key=lambda inner: (inner[2][0], inner[0]) if len(inner) > 1 else (inner[0], '')) '''==미상/미분류== 맨 위로 놓기''' for item in hanja_list_etc: if len(item) == 1: hanja_list_etc.remove(item) hanja_list_etc.insert(0, item) break ''' 리스트 합치기''' result = hanja_list + hanja_list_etc tosavelist = [] prevent_hanja = '' last_item = result[-1] list_start = True for item in result: if len(item) > 1: [hanja, mean, sound, eduext, unclassified] = item if prevent_hanja == hanja: # 이전과 내용이 같을 때 prevent_hanja = hanja else: tosavelist.append(f'|<i class="{eduext}">[[{hanja}]]</i>{mean} <i>{sound}</i>') if item == last_item: tosavelist.append('|}') elif len(item) == 1: [sound] = item if list_start is not True: tosavelist.append("|}") list_start = True tosavelist.append("==" + sound + "==") if list_start is True: tosavelist.append('{| class="hanja-list"') list_start = False tosavelist = '\n'.join(tosavelist) from bot import find_put_cont hanja_list_tosave = find_put_cont(hanja_list_pre_source, '<!--{{-->', tosavelist, '<!--}}-->') if hanja_list_pre_source == hanja_list_tosave: print('변경사항 없음') return '변경사항 없음' else: time.sleep(5) libre.page.set('시리즈:리브레 한자사전/음으로 찾기') libre.page.cont = hanja_list_tosave libre.page.save('한자 목록 업데이트') #libre.page.print() libre.logout() return 'done!' if __name__ == "__main__": update_list('adsf', 'asdf') </syntaxhighlight>'
편집 후 새 문서의 위키텍스트 (new_wikitext)
'{{삭제|}}'
편집 전후의 차이 (edit_diff)
'@@ -1,196 +1,1 @@ -<del>스파게티 코드</del> - -<syntaxhighlight lang="python3"> -from bot import Site -import re, time - -def update_list(event, context): - hours = 1 - - libre = Site('https://librewiki.net', apiprefix='') - - def categoryrevisions(hours): - localtime = time.time() - if hours is None: #디버그 완료 후? == True -> 디버그 이후 최초 작업 - pretime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(0)) - currtime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(localtime)) - else: - pretime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(localtime - 60 * 60 * hours)) - currtime = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(localtime)) - - return libre.pages_in_category_sorted('한자/문자', '1600', startdate=pretime, enddate=currtime) - - - docs = categoryrevisions(hours) - time.sleep(1) - - if len(docs) == 0: - print(f'No revisions for {hours} hour.') - return - - eduHanja = ("佳", "假", "價", "加", "可", "家", "歌", "街", "暇", "架", "各", "脚", "角", "刻", "却", "覺", "閣", "干", "看", "間", "刊", "姦", "幹", "懇", "簡", "肝", "渴", "感", "敢", "減", "甘", "監", "鑑", "甲", "強", "江", "講", "降", "剛", "康", "綱", "鋼", "個", "改", "皆", "開", "介", "慨", "槪", "蓋", "客", "更", "去", "居", "巨", "擧", "車", "拒", "據", "距", "乾", "建", "件", "健", "乞", "傑", "儉", "劍", "檢", "擊", "格", "激", "隔", "堅", "犬", "見", "牽", "絹", "肩", "遣", "決", "潔", "結", "缺", "兼", "謙", "京", "庚", "慶", "敬", "景", "競", "經", "耕", "輕", "驚", "傾", "卿", "境", "徑", "硬", "竟", "警", "鏡", "頃", "季", "溪", "界", "癸", "計", "鷄", "係", "啓", "契", "戒", "桂", "械", "系", "繫", "繼", "階", "古", "告", "固", "故", "考", "苦", "高", "姑", "孤", "庫", "枯", "稿", "顧", "鼓", "曲", "穀", "谷", "哭", "困", "坤", "骨", "公", "共", "功", "工", "空", "供", "孔", "恐", "恭", "攻", "貢", "果", "科", "課", "過", "寡", "誇", "郭", "官", "觀", "關", "冠", "寬", "慣", "管", "貫", "館", "光", "廣", "狂", "鑛", "掛", "塊", "壞", "怪", "愧", "交", "敎", "校", "橋", "巧", "矯", "較", "郊", "久", "九", "口", "句", "救", "求", "究", "舊", "丘", "俱", "具", "區", "懼", "拘", "構", "狗", "球", "苟", "驅", "龜", "國", "局", "菊", "君", "軍", "郡", "群", "屈", "弓", "宮", "窮", "勸", "卷", "權", "券", "拳", "厥", "軌", "歸", "貴", "鬼", "叫", "糾", "規", "均", "菌", "極", "克", "劇", "勤", "根", "近", "僅", "斤", "謹", "今", "禁", "金", "琴", "禽", "錦", "及", "急", "給", "級", "肯", "其", "基", "己", "幾", "技", "旣", "期", "氣", "記", "起", "企", "器", "奇", "寄", "忌", "旗", "棄", "機", "欺", "畿", "祈", "紀", "豈", "飢", "騎", "緊", "吉", "那", "諾", "暖", "難", "南", "男", "納", "娘", "乃", "內", "奈", "耐", "女", "年", "念", "寧", "怒", "努", "奴", "農", "惱", "腦", "能", "泥", "多", "茶", "丹", "但", "單", "短", "端", "團", "壇", "斷", "旦", "檀", "段", "達", "談", "擔", "淡", "答", "畓", "踏", "堂", "當", "唐", "糖", "黨", "代", "大", "對", "待", "帶", "臺", "貸", "隊", "德", "刀", "到", "圖", "島", "度", "徒", "道", "都", "倒", "塗", "導", "挑", "桃", "渡", "盜", "稻", "跳", "逃", "途", "陶", "獨", "讀", "毒", "督", "篤", "敦", "豚", "突", "冬", "動", "同", "東", "洞", "童", "凍", "銅", "斗", "豆", "頭", "屯", "鈍", "得", "燈", "登", "等", "騰", "羅", "樂", "落", "絡", "卵", "亂", "欄", "蘭", "濫", "覽", "浪", "郞", "廊", "來", "冷", "掠", "略", "兩", "涼", "良", "量", "梁", "糧", "諒", "勵", "慮", "麗", "力", "歷", "曆", "練", "連", "憐", "戀", "聯", "蓮", "鍊", "列", "烈", "劣", "裂", "廉", "獵", "令", "領", "嶺", "零", "靈", "例", "禮", "隷", "勞", "老", "路", "露", "爐", "綠", "祿", "錄", "鹿", "論", "弄", "賴", "雷", "料", "了", "僚", "龍", "屢", "樓", "淚", "漏", "累", "柳", "流", "留", "類", "六", "陸", "倫", "輪", "律", "栗", "率", "隆", "陵", "利", "李", "理", "里", "吏", "履", "梨", "裏", "離", "鄰", "林", "臨", "立", "馬", "磨", "麻", "莫", "幕", "漠", "晚", "滿", "萬", "慢", "漫", "末", "亡", "忙", "忘", "望", "妄", "罔", "茫", "妹", "每", "買", "賣", "埋", "媒", "梅", "麥", "脈", "孟", "猛", "盟", "盲", "免", "勉", "眠", "面", "綿", "滅", "名", "命", "明", "鳴", "冥", "銘", "暮", "母", "毛", "侮", "冒", "募", "慕", "某", "模", "謀", "貌", "木", "目", "牧", "睦", "沒", "夢", "蒙", "卯", "妙", "墓", "廟", "苗", "務", "戊", "武", "無", "舞", "茂", "貿", "霧", "墨", "默", "問", "文", "聞", "門", "勿", "物", "味", "尾", "未", "米", "美", "微", "眉", "迷", "民", "憫", "敏", "密", "蜜", "朴", "博", "拍", "泊", "薄", "迫", "半", "反", "飯", "伴", "叛", "班", "盤", "般", "返", "發", "拔", "髮", "房", "放", "方", "訪", "防", "倣", "傍", "妨", "芳", "邦", "拜", "杯", "倍", "培", "排", "背", "輩", "配", "白", "百", "伯", "番", "煩", "繁", "飜", "伐", "罰", "凡", "犯", "範", "法", "壁", "碧", "變", "辨", "辯", "邊", "別", "丙", "兵", "病", "屛", "竝", "保", "報", "步", "寶", "普", "補", "譜", "伏", "復", "服", "福", "卜", "腹", "複", "覆", "本", "奉", "逢", "封", "峯", "蜂", "鳳", "否", "夫", "婦", "富", "扶", "浮", "父", "部", "付", "副", "府", "符", "簿", "腐", "負", "賦", "赴", "附", "北", "分", "墳", "奔", "奮", "憤", "粉", "紛", "不", "佛", "拂", "朋", "崩", "備", "比", "悲", "非", "飛", "鼻", "卑", "妃", "婢", "批", "碑", "祕", "肥", "費", "貧", "賓", "頻", "氷", "聘", "事", "仕", "使", "史", "四", "士", "寺", "巳", "射", "師", "思", "死", "私", "絲", "舍", "謝", "似", "司", "寫", "捨", "斜", "斯", "査", "沙", "祀", "社", "蛇", "詐", "詞", "賜", "辭", "邪", "削", "朔", "山", "散", "産", "算", "殺", "三", "上", "傷", "商", "喪", "尙", "常", "想", "相", "賞", "霜", "像", "償", "嘗", "床", "桑", "狀", "祥", "裳", "詳", "象", "塞", "色", "索", "生", "序", "暑", "書", "西", "庶", "徐", "恕", "敍", "緖", "署", "誓", "逝", "夕", "席", "惜", "昔", "石", "析", "釋", "仙", "先", "善", "線", "船", "選", "鮮", "宣", "旋", "禪", "舌", "設", "說", "雪", "攝", "涉", "城", "姓", "性", "成", "星", "盛", "省", "聖", "聲", "誠", "世", "勢", "歲", "洗", "稅", "細", "小", "少", "所", "消", "笑", "素", "召", "掃", "昭", "燒", "疏", "蔬", "蘇", "訴", "騷", "俗", "續", "速", "屬", "束", "粟", "孫", "損", "松", "送", "訟", "誦", "頌", "刷", "鎖", "𮕩", "修", "受", "壽", "守", "愁", "手", "授", "收", "數", "樹", "水", "秀", "誰", "雖", "須", "首", "囚", "垂", "帥", "搜", "殊", "獸", "睡", "輸", "遂", "隨", "需", "叔", "宿", "淑", "孰", "熟", "肅", "純", "順", "巡", "循", "旬", "殉", "瞬", "脣", "戌", "術", "述", "崇", "拾", "習", "濕", "襲", "乘", "勝", "承", "僧", "昇", "始", "市", "施", "是", "時", "示", "視", "詩", "試", "侍", "矢", "式", "植", "識", "食", "息", "飾", "信", "新", "申", "神", "臣", "身", "辛", "伸", "愼", "晨", "失", "室", "實", "心", "深", "甚", "審", "尋", "十", "雙", "氏", "兒", "我", "亞", "牙", "芽", "雅", "餓", "惡", "岳", "安", "案", "眼", "顔", "岸", "雁", "謁", "巖", "暗", "壓", "押", "仰", "央", "殃", "哀", "愛", "涯", "厄", "額", "也", "夜", "野", "耶", "弱", "約", "若", "藥", "躍", "揚", "洋", "羊", "讓", "陽", "養", "壤", "楊", "樣", "於", "漁", "語", "魚", "御", "億", "憶", "抑", "言", "焉", "嚴", "業", "余", "如", "汝", "與", "餘", "予", "輿", "亦", "易", "逆", "域", "役", "疫", "譯", "驛", "然", "煙", "硏", "宴", "延", "沿", "演", "燃", "燕", "緣", "軟", "鉛", "悅", "熱", "閱", "炎", "染", "鹽", "葉", "榮", "永", "英", "迎", "影", "映", "泳", "營", "詠", "藝", "譽", "銳", "豫", "五", "午", "吾", "悟", "烏", "誤", "傲", "嗚", "娛", "汚", "屋", "玉", "獄", "溫", "擁", "翁", "瓦", "臥", "完", "緩", "曰", "往", "王", "外", "畏", "要", "搖", "腰", "謠", "遙", "欲", "浴", "慾", "辱", "勇", "容", "用", "庸", "于", "又", "友", "右", "宇", "尤", "憂", "牛", "遇", "雨", "偶", "優", "愚", "羽", "郵", "云", "運", "雲", "韻", "雄", "元", "原", "圓", "園", "怨", "遠", "願", "員", "援", "源", "院", "月", "越", "位", "偉", "危", "威", "爲", "僞", "圍", "委", "慰", "緯", "胃", "衛", "謂", "違", "唯", "幼", "有", "柔", "油", "猶", "由", "遊", "遺", "酉", "乳", "儒", "幽", "悠", "惟", "愈", "維", "裕", "誘", "肉", "育", "潤", "閏", "恩", "銀", "隱", "乙", "吟", "陰", "音", "飮", "淫", "泣", "邑", "應", "凝", "依", "意", "矣", "義", "衣", "議", "醫", "儀", "宜", "疑", "二", "以", "已", "異", "移", "而", "耳", "夷", "益", "翼", "人", "仁", "印", "因", "寅", "引", "忍", "認", "姻", "一", "日", "逸", "壬", "任", "賃", "入", "姊", "子", "字", "慈", "者", "自", "刺", "姿", "恣", "紫", "茲", "資", "作", "昨", "爵", "酌", "殘", "暫", "潛", "雜", "場", "壯", "將", "章", "長", "丈", "墻", "奬", "帳", "張", "掌", "粧", "腸", "臟", "莊", "葬", "藏", "裝", "障", "再", "哉", "在", "才", "材", "栽", "財", "宰", "災", "裁", "載", "爭", "低", "著", "貯", "底", "抵", "敵", "的", "赤", "適", "寂", "摘", "滴", "積", "籍", "績", "賊", "跡", "傳", "全", "典", "前", "展", "戰", "田", "錢", "電", "專", "殿", "轉", "節", "絕", "切", "折", "竊", "店", "占", "漸", "點", "接", "蝶", "丁", "井", "停", "定", "庭", "情", "政", "正", "淨", "精", "貞", "靜", "頂", "亭", "廷", "征", "整", "程", "訂", "帝", "弟", "祭", "第", "製", "諸", "除", "題", "制", "堤", "提", "濟", "際", "齊", "兆", "助", "早", "朝", "祖", "調", "造", "鳥", "弔", "操", "條", "潮", "照", "燥", "租", "組", "族", "足", "存", "尊", "卒", "拙", "宗", "從", "種", "終", "鐘", "縱", "坐", "左", "佐", "座", "罪", "主", "住", "宙", "晝", "朱", "注", "走", "酒", "周", "奏", "州", "柱", "株", "洲", "珠", "舟", "鑄", "竹", "俊", "準", "遵", "中", "衆", "重", "仲", "卽", "增", "曾", "證", "憎", "症", "蒸", "贈", "之", "只", "地", "志", "持", "指", "支", "枝", "止", "知", "紙", "至", "智", "池", "誌", "遲", "直", "織", "職", "盡", "眞", "辰", "進", "振", "珍", "鎭", "陣", "陳", "震", "質", "姪", "疾", "秩", "執", "集", "徵", "懲", "且", "借", "次", "此", "差", "着", "捉", "錯", "讚", "贊", "察", "參", "慘", "慙", "唱", "昌", "窓", "倉", "創", "暢", "蒼", "採", "菜", "債", "彩", "冊", "責", "策", "妻", "處", "尺", "戚", "拓", "斥", "千", "天", "川", "泉", "淺", "薦", "賤", "踐", "遷", "鐵", "哲", "徹", "尖", "添", "妾", "晴", "淸", "聽", "請", "靑", "廳", "體", "替", "滯", "逮", "遞", "初", "招", "草", "抄", "礎", "秒", "肖", "超", "促", "燭", "觸", "寸", "村", "總", "聰", "銃", "最", "催", "推", "秋", "追", "抽", "醜", "丑", "祝", "畜", "築", "縮", "蓄", "逐", "春", "出", "充", "忠", "蟲", "衝", "取", "吹", "就", "臭", "趣", "醉", "側", "測", "層", "治", "致", "齒", "値", "恥", "置", "則", "親", "七", "漆", "針", "侵", "寢", "枕", "沈", "浸", "稱", "快", "他", "打", "墮", "妥", "卓", "托", "濁", "濯", "彈", "歎", "炭", "誕", "脫", "奪", "探", "貪", "塔", "湯", "太", "泰", "怠", "態", "殆", "宅", "擇", "澤", "土", "吐", "討", "統", "通", "痛", "退", "投", "透", "鬪", "特", "波", "破", "把", "播", "派", "罷", "頗", "判", "板", "版", "販", "八", "敗", "貝", "便", "片", "篇", "偏", "編", "遍", "平", "評", "閉", "幣", "廢", "弊", "肺", "蔽", "布", "抱", "包", "捕", "浦", "胞", "飽", "暴", "幅", "爆", "表", "標", "漂", "票", "品", "豐", "風", "彼", "皮", "疲", "被", "避", "匹", "必", "筆", "畢", "下", "何", "夏", "河", "賀", "荷", "學", "鶴", "寒", "恨", "漢", "閑", "限", "韓", "旱", "汗", "割", "含", "咸", "陷", "合", "恒", "巷", "抗", "港", "航", "項", "亥", "害", "海", "解", "奚", "該", "核", "幸", "行", "向", "鄕", "香", "享", "響", "虛", "許", "憲", "獻", "軒", "險", "驗", "革", "現", "賢", "懸", "玄", "絃", "縣", "顯", "血", "穴", "嫌", "協", "脅", "兄", "刑", "形", "亨", "螢", "衡", "惠", "兮", "慧", "乎", "呼", "好", "戶", "湖", "虎", "號", "互", "毫", "浩", "胡", "護", "豪", "或", "惑", "婚", "混", "昏", "魂", "忽", "紅", "弘", "洪", "鴻", "化", "和", "火", "畫", "花", "華", "話", "貨", "禍", "禾", "擴", "確", "穫", "患", "歡", "丸", "換", "環", "還", "活", "皇", "黃", "況", "荒", "回", "會", "悔", "懷", "劃", "獲", "橫", "孝", "效", "曉", "厚", "後", "侯", "候", "訓", "毁", "揮", "輝", "休", "携", "凶", "胸", "黑", "吸", "興", "喜", "希", "戲", "稀") - libre.login('Caeruleum', 'Caeruleum@*********') - time.sleep(1) - libre.page << '시리즈:리브레 한자사전/음으로 찾기' - - hanja_list_source = libre.page - hanja_list_pre_source: str = libre.page.cont - hanja_list_source.extract('<!--{{-->', '<!--}}-->') - hanja_list_source.replace('\n|', '\n').remove_re(r'\{\|.*\>\n').remove('}\n').remove_re(r'^\n').remove_re(r'$\n') - - def tolist(listText: str, unclassified: bool = False) -> list: - listText = listText.split("\n") - toreturnlist = [] - for line in listText: - if line.find("==") != -1: - line = line.replace("==", "") - toreturnlist.append([line]) - else: - char = re.search(r"\[\[(.*)\]\]", line) - if char is not None: char = char.group(1).strip() - - mean = re.search("</i>(.*) <i>", line) - if mean is not None: mean = mean.group(1).strip() - - sound = re.search("<i>(.*)</i>", line) - if sound is not None: sound = sound.group(1).strip() - - eduext = re.search("<i class=\"(.*)\">", line) - if eduext is not None: eduext = eduext.group(1).strip() - - if char == mean == sound == eduext is None: - pass - else: - toreturnlist.append([char, mean, sound, eduext, unclassified]) - return toreturnlist - hanja_list_source: str = hanja_list_source.cont - hanja_list_etc = hanja_list_source[hanja_list_source.find("==미상/미분류=="):] - hanja_list_source = hanja_list_source.replace(hanja_list_etc, '')[:-1] - hanja_list = tolist(hanja_list_source) - hanja_list_etc = tolist(hanja_list_etc, True) - - def newerRevisions(docs): - result = [] - for title in docs: - libre.page << title - text = libre.page.cont - hanja:str - mean: str = None - sound: str = None - unclassified: bool = False - - hanja = re.search('한자 *= *([^|]*)', text).group(1).strip().replace('ː', '') - - mean_sound: str = re.search('뜻 소리 *= *([^|]*)', text) - if mean_sound: - mean_sound = mean_sound.group(1).strip() - mean = mean_sound.split(' [')[0] - sound = mean_sound[mean_sound.find('['):mean_sound.find(']')] - else: - mean = re.search('뜻 *= *([^|]*)', text).group(1).strip().replace('ː', '') - sound = re.search('소리 *= *([^|]*)', text).group(1).strip().replace('ː', '') - - if hanja in eduHanja: - eduext = 'edu' - else: - eduext = 'ext' - if ord(hanja) > 65535: - hanja = hex(ord(hanja)).upper().replace('0X', 'U+') + '|' + hanja - - if sound != '-': - defaultsort = libre.api_with_url(f"https://librewiki.net/api.php?action=query&format=json&prop=pageprops&titles={title}&redirects=1&utf8=1&formatversion=2")["query"]["pages"][0]["pageprops"]["defaultsort"] - # 기본 정렬키 - if defaultsort == '-': #미분류 - unclassified = True - elif sound == '-': - unclassified = True - - # 결과 리스트에 리스트 추가 - - result.append([hanja, mean, sound, eduext, unclassified]) - time.sleep(1) - return result - - toput_list_origin = newerRevisions(docs) - toput_list = [] - toput_list_etc = [] - - ''' etc/일반 리스트 분리하기 ''' - for item in toput_list_origin: - if item[4] == True: - toput_list_etc.append(item) - else: - toput_list.append(item) - - '''리스트의 요소를 대체하거나 끼워넣는 함수''' - def putitem(toput, list_): - if toput in list_: - return - for item in list_: - if item[0] == toput[0]: - list_[list_.index(item)] = toput - list_.append(toput) - - '''리스트의 요소 대체''' - for item in toput_list: - putitem(item, hanja_list) - for item in toput_list_etc: - putitem(item, hanja_list_etc) - - '''리스트 정렬''' - hanja_list = sorted(hanja_list, key=lambda inner: (inner[2][0], inner[0]) if len(inner) > 1 else (inner[0], '')) - hanja_list_etc = sorted(hanja_list_etc, key=lambda inner: (inner[2][0], inner[0]) if len(inner) > 1 else (inner[0], '')) - - '''==미상/미분류== 맨 위로 놓기''' - for item in hanja_list_etc: - if len(item) == 1: - hanja_list_etc.remove(item) - hanja_list_etc.insert(0, item) - break - - ''' 리스트 합치기''' - result = hanja_list + hanja_list_etc - - tosavelist = [] - prevent_hanja = '' - last_item = result[-1] - list_start = True - for item in result: - if len(item) > 1: - [hanja, mean, sound, eduext, unclassified] = item - if prevent_hanja == hanja: # 이전과 내용이 같을 때 - prevent_hanja = hanja - else: - tosavelist.append(f'|<i class="{eduext}">[[{hanja}]]</i>{mean} <i>{sound}</i>') - if item == last_item: - tosavelist.append('|}') - elif len(item) == 1: - [sound] = item - if list_start is not True: - tosavelist.append("|}") - list_start = True - tosavelist.append("==" + sound + "==") - if list_start is True: - tosavelist.append('{| class="hanja-list"') - list_start = False - - tosavelist = '\n'.join(tosavelist) - from bot import find_put_cont - hanja_list_tosave = find_put_cont(hanja_list_pre_source, '<!--{{-->', tosavelist, '<!--}}-->') - if hanja_list_pre_source == hanja_list_tosave: - print('변경사항 없음') - return '변경사항 없음' - else: - time.sleep(5) - libre.page.set('시리즈:리브레 한자사전/음으로 찾기') - libre.page.cont = hanja_list_tosave - libre.page.save('한자 목록 업데이트') - #libre.page.print() - libre.logout() - - return 'done!' - -if __name__ == "__main__": - update_list('adsf', 'asdf') - -</syntaxhighlight> +{{삭제|}} '
편집 중 추가된 줄 (added_lines)
[ 0 => '{{삭제|}}' ]
편집이 토르 끝 노드를 통해 바뀌었는 지의 여부 (tor_exit_node)
false
바뀐 시점의 유닉스 시간 기록 (timestamp)
1664369647