From cb33edc3cdce325d945ab6fbf250523b0aa66bf2 Mon Sep 17 00:00:00 2001 From: vylion Date: Tue, 19 Sep 2017 13:00:56 +0200 Subject: [PATCH] Initial commit. Uploading Velasco v1.1 --- .gitignore | 1 + __pycache__/chatlog.cpython-36.pyc | Bin 0 -> 1963 bytes __pycache__/markov.cpython-36.pyc | Bin 0 -> 1723 bytes chatlog.py | 58 +++++++++ markov.py | 50 ++++++++ velasco.py | 184 +++++++++++++++++++++++++++++ 6 files changed, 293 insertions(+) create mode 100644 .gitignore create mode 100644 __pycache__/chatlog.cpython-36.pyc create mode 100644 __pycache__/markov.cpython-36.pyc create mode 100644 chatlog.py create mode 100644 markov.py create mode 100755 velasco.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6ec0a37 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +chatlogs/* \ No newline at end of file diff --git a/__pycache__/chatlog.cpython-36.pyc b/__pycache__/chatlog.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2237ed8fa4dd93abeb497b6e41d9fff8f80299b2 GIT binary patch literal 1963 zcmZuy&2HO95Z>jI6eUZx>=IyG4_ z9*jb4PZzBo?iaYrUmz-9vRPaAE5Bk1%fm6F)$oe1IW({GAVno0{VITOq<@sW@@Ap_ zUV5t__oY|`RRBAzi0Th)FxJJzVsnV?H-L=Aq4nqGxU`})+IkadeRI7~HZT*DDeIqU zbxuB|%Fb*skt#RCXoS?sOYdL@-6GM2_>1X1EN|nJ*Tr0&TwZ6BB0o7T^lXu(BfL;q zT8@en`W%%%U0mBJNhbNkBncH?K7?RA;*l5f4iE8z&O_nzW&Z}Qr_Bc=f{HF`(-yX4 zJXCzj)@%iMrd$Fl4%nv9E01&sgg03FpU*C{SlFOkWD{efEvID`m&%6APN_yCoblY`X8C6KPtLy*@)wISd ztjK>&`SJl!rBT#J5W_=+QaUxN2~DZRyv~u0SkY+KEJH-@1|#s^$M;$XU(f^S1_#JAs9EJ0 z7v5rAYs;%~)SEYVL z9(Vc~nj$e*<|~-WT?lGu7r(ya+j6%7yLQ`FPE}Jt$Fi4DsB+9X#~gWA#}#HrvOm2e znx=!5py{s!v5!zVe{{+)L0rNPDV+2nJz&FSa0IV)fSSX>h5~8g^TrA4?uKBG1KV+j zMO~W1g4nLfXvHKq7&w|AeN4hZa$o(?nJ(spz&CKanY9Shc7WfzbFOj1qz~d9Iw#B7`=fs9J&qF^U{$FI82c2oRMJSV)nYVu4m$&)8mjy=%{I z65HDC#rY)MxNzry_!b=I$_0Ogo_KH8HdX0`vG&dLn>TOXpWk~Ac6RE2|MtfZUpR#P zMP6AP_%ryj_kjo^XiPff2@yy2(>#-LPxD;P@?VH*fDY5?3~Qba<-LP2V_aVB0qfs$pF2A9vXc}62C*XyoG$vdJ0LIeslqKg~Zs4 z-~A^tkt)n(=I1J!#IW~NI`;E{^!w43Ongj;pTS|$Z~5n`ANBn7QmrNawN$e1zqXDp z24U`pew;#H=3rrdbOM?m3%|d9%|Aw!6F)pzD>eNv5%_BIA8W^3r4uyOY;84G2)p(Q z6Sl(aH7(`BrfeYER$m|6Ao-7ev`SjC(kf`ddaUFHVvvp;_0SZBACe&}tR;o?*9)s(m5M)x ze^3lWDQ$!M`(Rb!8`=pc6PbvnUHQ+hKhx~`eurH@(AG%KUyDZ7;Lct6GK`kceZX0r z?y)V(Hn3jZhvRLR;Vp!kiRe#Ya`0K8Z%i2I6U>62PjFeW%XAcE0EQnD2 zpIg(`1u3k8gAKcM`lNJcPjg-XydjIn;q=fCXXL71b61$t z@5%H<;lRrto>V%A&booo_ zH|yE~;D~grUEHH2R|pP+DYb{(yGTrp> 1: + reply = "Current frequency is " + str(chatlogs[ident].freq) + else: + try: + value = update.message.text.split()[1] + value = int(value) + chatlogs[ident].set_freq(value) + reply = "Frequency of speaking set to " + str(value) + except: + reply = "Format was confusing; requency not changed from " + str(chatlogs[ident].freq) + update.message.reply_text(reply) + +def stop(bot, update): + chatlog = chatlogs[update.message.chat.id] + del chatlogs[chatlog.id] + os.remove("chatlogs/" + chatlog.id + ".txt") + print("I got blocked. Removed user " + chatlog.id) + +def main(): + parser = argparse.ArgumentParser(description='A Telegram markovbot.') + parser.add_argument('token', metavar='TOKEN', help='The Bot Token to work with the Telegram Bot API') + + args = parser.parse_args() + + # Create the EventHandler and pass it your bot's token. + updater = Updater(args.token) + + # Get the dispatcher to register handlers + dp = updater.dispatcher + + # on different commands - answer in Telegram + dp.add_handler(CommandHandler("start", start)) + dp.add_handler(CommandHandler("about", about)) + dp.add_handler(CommandHandler("help", help)) + dp.add_handler(CommandHandler("count", get_count)) + dp.add_handler(CommandHandler("freq", set_freq)) + dp.add_handler(CommandHandler("list", get_chatlogs)) + dp.add_handler(CommandHandler("stop", stop)) + + # on noncommand i.e message - echo the message on Telegram + # dp.add_handler(MessageHandler(Filters.text, echo)) + dp.add_handler(MessageHandler(Filters.text, read)) + + # chatlog all errors + dp.add_error_handler(error) + + wake(updater.bot) + + # Start the Bot + updater.start_polling() + + # Run the bot until you press Ctrl-C or the process receives SIGINT, + # SIGTERM or SIGABRT. This should be used most of the time, since + # start_polling() is non-blocking and will stop the bot gracefully. + updater.idle() + +if __name__ == '__main__': + main()