diff --git a/wqb.py b/wqb.py index 25343e3..eb2c590 100644 --- a/wqb.py +++ b/wqb.py @@ -1,6 +1,7 @@ import json import urllib2 import logging +import re logging.basicConfig(filename='wqb.log', format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', encoding='utf-8', level=logging.DEBUG) @@ -17,6 +18,9 @@ token = config[1].split('=')[1].strip() def send_message(input): data = { 'chat_id': chat_id, + 'parse_mode': "MarkdownV2", + 'disable_web_page_preview': 'true', + 'disable_notification': 'true', 'text': input } @@ -27,30 +31,55 @@ def send_message(input): logging.info('sent message ' + input) +def get_id(quest): + sources = {'SL': sl, 'BfA': bfa, 'Legion': legion} + + for name, src in sources.items(): + if (src.find(quest) != -1): + rgx = r"\"(\d+)\":{\"name_enus\":\"" + re.escape(quest) + r"\"" + m = re.search(rgx, src) + if (m): + return m.group(1), name + else: + return 0, name + + return -1, '' + +def sanitize(str): + return str.replace('-', '\\-') + qlist = open('ql','r') qlist = qlist.readlines() +output = '' for quest in qlist: - quest = quest.rstrip() - qsplit = quest.split('|') - if len(qsplit) == 2: - if (sl.find(qsplit[1]) != -1): - send_message('[SL Tamer] ' + qsplit[0] + ' - ' + qsplit[1]) - if (bfa.find(qsplit[1]) != -1): - send_message('[BFA Tamer] ' + qsplit[0] + ' - ' + qsplit[1]) - if (legion.find(qsplit[1]) != -1): - send_message('[Legion Tamer] ' + qsplit[0] + ' - ' + qsplit[1]) + qsplit = quest.rstrip().split('|') + id = -1 + tag = '' + q = '' + prefix = '' + suffix = '' + + if len(qsplit) == 1: + q = qsplit[0] + elif len(qsplit) == 2: + q = qsplit[1] + prefix = qsplit[0] + " - " elif len(qsplit) == 3: - if (sl.find(qsplit[1]) != -1): - send_message('[SL Tamer] ' + qsplit[0] + ' - ' + qsplit[1] + ' - ' + qsplit[2]) - if (bfa.find(qsplit[1]) != -1): - send_message('[BFA Tamer] ' + qsplit[0] + ' - ' + qsplit[1] + ' - ' + qsplit[2]) - if (legion.find(qsplit[1]) != -1): - send_message('[Legion Tamer] ' + qsplit[0] + ' - ' + qsplit[1] + ' - ' + qsplit[2]) - else: - if (sl.find(quest) != -1): - send_message('[SL] ' + quest) - if (bfa.find(quest) != -1): - send_message('[BFA] ' + quest) - if (legion.find(quest) != -1): - send_message('[Legion] ' + quest) + q = qsplit[1] + prefix = qsplit[0] + " - " + suffix = " - " + qsplit[2] + + r = get_id(q) + id = r[0] + tag = r[1] + if (id == -1): + continue + elif (id > 0): + q = "[%s](https://wowhead.com/quest=%s)" % (q, id) + + output = "%s\n\\[%s\\] %s%s%s" % (output, tag, prefix, q, suffix) + +if output != '': + output = sanitize(output) + send_message(output.strip())