diff options
author | diSabler <dissy@ya.ru> | 2020-06-23 13:59:34 +0300 |
---|---|---|
committer | diSabler <dissy@ya.ru> | 2020-06-23 13:59:34 +0300 |
commit | a718abd0ba590d408bea83ae1ae0e8b5fa7ea382 (patch) | |
tree | 2f0323cdbbba9d709feb8cffbe74110187b7d0d3 | |
parent | 61955904dac5572a720a2cb5387b48f2282e3b45 (diff) |
chg: more smart answer in chat plugin
-rwxr-xr-x | kernel.py | 160 | ||||
-rw-r--r-- | plugins/chat.py | 10 |
2 files changed, 13 insertions, 157 deletions
@@ -40,7 +40,7 @@ import ssl import sys
import threading
-# Threads with `kill` function
+# Threads with `kill` feature
class KThread(threading.Thread):
def __init__(self, *args, **keywords):
threading.Thread.__init__(self, *args, **keywords)
@@ -76,8 +76,8 @@ def thr(func, param, name): global THREAD_COUNT, THREAD_ERROR_COUNT, sema
THREAD_COUNT += 1
try:
- tmp_th = KThread(group=None, target=log_execute, name='%s_%s' % \
- (THREAD_COUNT, name), args=(func, param))
+ tmp_th = KThread(group=None, target=log_execute,
+ name='%s_%s' % (THREAD_COUNT, name), args=(func, param))
tmp_th.start()
except SystemExit:
pass
@@ -124,86 +124,6 @@ def writefile(filename, data): fp.write(data)
fp.close()
-def replace_ltgt(text):
- return remove_replace_ltgt(text, ' ')
-
-def remove_replace_ltgt(text, item):
- T = re.findall('<.*?>', text, re.S)
- for tmp in T:
- text = text.replace(tmp, item, 1)
- return text
-
-def rss_replace(ms):
- for tmp in lmass:
- ms = ms.replace(tmp[1], tmp[0])
- return unescape(esc_min(ms))
-
-def esc_min(ms):
- for tmp in rmass:
- ms = ms.replace(tmp[1], tmp[0])
- return ms
-
-def unescape(text):
- def fixup(m):
- text = m.group(0)
- if text[:2] == '&#':
- try:
- if text[:3] == '&#x':
- return unichr(int(text[3:-1], 16))
- else:
- return unichr(int(text[2:-1]))
- except ValueError:
- pass
- else:
- try:
- text = unichr(htmlentitydefs.name2codepoint[text[1:-1]])
- except KeyError:
- pass
- return text
- return re.sub('&#?\w+;', fixup, text)
-
-# Hard remove HTML tags
-def unhtml_raw(page, mode):
- for a in range(0, page.count('<style')):
- ttag = get_tag_full(page, 'style')
- page = page.replace(ttag, '')
-
- for a in range(0, page.count('<script')):
- ttag = get_tag_full(page, 'script')
- page = page.replace(ttag, '')
-
- page = rss_replace(page)
- if mode:
- page = replace_ltgt(page)
- else:
- page = rss_repl_html(page)
- page = rss_replace(page)
- page = rss_del_nn(page)
- page = page.replace('\n ', '')
- return page
-
-def rss_del_nn(ms):
- ms = ms.replace('\r', ' ').replace('\t', ' ')
- while '\n ' in ms:
- ms = ms.replace('\n ', '\n')
- while len(ms) and (ms[0] == '\n' or ms[0] == ' '):
- ms = ms[1:]
- while '\n\n' in ms:
- ms = ms.replace('\n\n', '\n')
- while ' ' in ms:
- ms = ms.replace(' ', ' ')
- while u'\n\n•' in ms:
- ms = ms.replace(u'\n\n•', u'\n•')
- while u'• \n' in ms:
- ms = ms.replace(u'• \n', u'• ')
- return ms.strip()
-
-def unhtml(page):
- return unhtml_raw(page, None)
-
-def unhtml_hard(page):
- return unhtml_raw(page, True)
-
# Get Bot's version
def get_bot_version():
if os.path.isfile(ver_file):
@@ -339,10 +259,7 @@ def get_config_bin(_config, _section, _name): except:
_var = _config.get(_section, _name).lower()
_True = [1, '1', 'yes', 'true']
- if _var in _True:
- return True
- else:
- return False
+ return _var in _True
# Replace non-ascii and TAB, CR, LF
def remove_sub_space(t):
@@ -454,11 +371,6 @@ def check_updates(): except requests.exceptions.ConnectionError:
pprint('*** Connection error on getUpdates. Waiting %s seconds.' % MAX_TIMEOUT, 'red')
return False
- #except requests.exceptions.InvalidSchema:
- # time.sleep(MAX_TIMEOUT)
- # raise
- # pprint('*** Connection error on getUpdates. Waiting %s seconds.' % MAX_TIMEOUT, 'red')
- # return False
if not request.status_code == 200:
pprint('*** Error code on getUpdates: %s' % request.status_code, 'red')
@@ -650,69 +562,7 @@ def shell_execute(cmd): pass
return '<code>%s</code>' % result
-# --- Let's begin! -------------------------------------------------------------- #
-lmass = (('\n','<br>'),('\n','<br />'),('\n','<br/>'),('\n','\n\r'),
- ('','<![CDATA['),('',']]>'),('','­'),('',' '),('',' '),
- ('',' '),('','‌'),('','‍'))
-rmass = (('&','&'),('\"','"'),('\'','''),('~','˜'),
- (' ',' '),('<','<'),('>','>'),(u'¡','¡'),
- (u'¢','¢'),(u'£','£'),(u'¤','¤'),(u'¥','¥'),
- (u'¦','¦'),(u'§','§'),(u'¨','¨'),(u'©','©'),
- (u'ª','ª'),(u'«','«'),(u'¬','¬'),(u'®','®'),
- (u'¯','¯'),(u'°','°'),(u'±','±'),(u'²','²'),
- (u'³','³'),(u'´','´'),(u'µ','µ'),(u'¶','¶'),
- (u'·','·'),(u'¸','¸'),(u'¹','¹'),(u'º','º'),
- (u'»','»'),(u'¼','¼'),(u'½','½'),(u'¾','¾'),
- (u'¿','¿'),(u'×','×'),(u'÷','÷'),(u'À','À'),
- (u'Á','Á'),(u'Â','Â'),(u'Ã','Ã'),(u'Ä','Ä'),
- (u'Å','Å'),(u'Æ','Æ'),(u'Ç','Ç'),(u'È','È'),
- (u'É','É'),(u'Ê','Ê'),(u'Ë','Ë'),(u'Ì','Ì'),
- (u'Í','Í'),(u'Î','Î'),(u'Ï','Ï'),(u'Ð','Ð'),
- (u'Ñ','Ñ'),(u'Ò','Ò'),(u'Ó','Ó'),(u'Ô','Ô'),
- (u'Õ','Õ'),(u'Ö','Ö'),(u'Ø','Ø'),(u'Ù','Ù'),
- (u'Ú','Ú'),(u'Û','Û'),(u'Ü','Ü'),(u'Ý','Ý'),
- (u'Þ','Þ'),(u'ß','ß'),(u'à','à'),(u'á','á'),
- (u'â','â'),(u'ã','ã'),(u'ä','ä'),(u'å','å'),
- (u'æ','æ'),(u'ç','ç'),(u'è','è'),(u'é','é'),
- (u'ê','ê'),(u'ë','ë'),(u'ì','ì'),(u'í','í'),
- (u'î','î'),(u'ï','ï'),(u'ð','ð'),(u'ñ','ñ'),
- (u'ò','ò'),(u'ó','ó'),(u'ô','ô'),(u'õ','õ'),
- (u'ö','ö'),(u'ø','ø'),(u'ù','ù'),(u'ú','ú'),
- (u'û','û'),(u'ü','ü'),(u'ý','ý'),(u'þ','þ'),
- (u'ÿ','ÿ'),(u'∀','∀'),(u'∂','∂'),(u'∃','&exists;'),
- (u'∅','∅'),(u'∇','∇'),(u'∈','∈'),(u'∉','∉'),
- (u'∋','∋'),(u'∏','∏'),(u'∑','∑'),(u'−','−'),
- (u'∗','∗'),(u'√','√'),(u'∝','∝'),(u'∞','∞'),
- (u'∠','∠'),(u'∧','∧'),(u'∨','∨'),(u'∩','∩'),
- (u'∪','∪'),(u'∫','∫'),(u'∴','∴'),(u'∼','∼'),
- (u'≅','≅'),(u'≈','≈'),(u'≠','≠'),(u'≡','≡'),
- (u'≤','≤'),(u'≥','≥'),(u'⊂','⊂'),(u'⊃','⊃'),
- (u'⊄','⊄'),(u'⊆','⊆'),(u'⊇','⊇'),(u'⊕','⊕'),
- (u'⊗','⊗'),(u'⊥','⊥'),(u'⋅','⋅'),(u'Α','Α'),
- (u'Β','Β'),(u'Γ','Γ'),(u'Δ','Δ'),(u'Ε','Ε'),
- (u'Ζ','Ζ'),(u'Η','Η'),(u'Θ','Θ'),(u'Ι','Ι'),
- (u'Κ','Κ'),(u'Λ','Λ'),(u'Μ','Μ'),(u'Ν','Ν'),
- (u'Ξ','Ξ'),(u'Ο','Ο'),(u'Π','Π'),(u'Ρ','Ρ'),
- (u'Σ','Σ'),(u'Τ','Τ'),(u'Υ','Υ'),(u'Φ','Φ'),
- (u'Χ','Χ'),(u'Ψ','Ψ'),(u'Ω','Ω'),(u'α','α'),
- (u'β','β'),(u'γ','γ'),(u'δ','δ'),(u'ε','ε'),
- (u'ζ','ζ'),(u'η','η'),(u'θ','θ'),(u'ι','ι'),
- (u'κ','κ'),(u'λ','λ'),(u'μ','μ'),(u'ν','ν'),
- (u'ξ','ξ'),(u'ο','ο'),(u'π','π'),(u'ρ','ρ'),
- (u'ς','ς'),(u'σ','σ'),(u'τ','τ'),(u'υ','υ'),
- (u'φ','φ'),(u'χ','χ'),(u'ψ','ψ'),(u'ω','ω'),
- (u'ϑ','ϑ'),(u'ϒ','ϒ'),(u'ϖ','ϖ'),(u'Œ','Œ'),
- (u'œ','œ'),(u'Š','Š'),(u'š','š'),(u'Ÿ','Ÿ'),
- (u'ƒ','ƒ'),(u'ˆ','ˆ'),(u'','‎'),(u'','‏'),
- (u'–','–'),(u'—','—'),(u'‘','‘'),(u'’','’'),
- (u'‚','‚'),(u'“','“'),(u'”','”'),(u'„','„'),
- (u'†','†'),(u'‡','‡'),(u'•','•'),(u'…','…'),
- (u'‰','‰'),(u'′','′'),(u'″','″'),(u'‹','‹'),
- (u'›','›'),(u'‾','‾'),(u'€','€'),(u'™','™'),
- (u'←','←'),(u'↑','↑'),(u'→','→'),(u'↓','↓'),
- (u'↔','↔'),(u'↵','↵'),(u'⌈','⌈'),(u'⌉','⌉'),
- (u'⌊','⌊'),(u'⌋','&rfloor'),(u'◊','◊'),(u'♠','♠'),
- (u'♣','♣'),(u'♥','♥'),(u'♦','♦'))
+# --- Let's begin! ----------------------------------------------------------- #
TELEGRAM_API_URL = 'https://api.telegram.org/bot%s' # Bot apt URL
SETTING_FOLDER = 'settings/%s' # Setting folder
PLUGIN_FOLDER = 'plugins/%s' # Plugins folder
diff --git a/plugins/chat.py b/plugins/chat.py index e1366dd..a9dc919 100644 --- a/plugins/chat.py +++ b/plugins/chat.py @@ -65,7 +65,9 @@ def getSmartAnswer(ID, text): answ = random.choice(list_of_answers[loc]).strip()
else:
answ = random.choice(list_of_empty[loc]).strip()
- score = 1.0
+ score = float(len(text.split()) - 2)
+ if score < 2:
+ score = 2
sc = 0
var = [answ]
text = ' %s ' % text.upper()
@@ -77,7 +79,11 @@ def getSmartAnswer(ID, text): elif sc == score:
var += dict_of_mind[loc][answer]
- return random.choice(var)
+ answ = random.choice(var)
+ while answ == LAST_PHRASE.get(ID, '') and len(var) >= 2:
+ answ = random.choice(var)
+ LAST_PHRASE[ID] = answ
+ return answ
def rating(s, text, ID):
r = 0.0
|