def test_currency(): assert Currency.currency('$40') == ('USD', 40) assert Currency.currency('€150') == ('EUR', 150) assert Currency.currency('¥1000') == ('JPY', 1000) assert Currency.currency(40, 'USD') == ('USD', 40) assert Currency.currency(150, 'EUR') == ('EUR', 150) assert Currency.currency(1000, 'JPY') == ('JPY', 1000)
class ZulipBot(object): def __init__(self): self.client = zulip.Client(site="https://fazeup.zulipchat.com/api/") self.subscribe_all() self.hacknews = Hackernews() self.trans = Translate() self.movie = Movie() self.lyrics = Lyrics() self.holiday = Holiday() self.currency = Currency() self.cricket = Cricket() # self.chatbot.train("chatterbot.corpus.english") self.crypto = Crypto() self.trans = Translate() self.g = Giphy() self.w = WikiPedia() # self.tw = Twimega() # self.motivate = Motivate() self.shortenedurl = Urlshortener() self.geo = Geocode() self.weather = Weather() self.dict_ = Dictionary() self.joke = Joke() self.pnr = Pnr() self.mustread = Mustread() self.ss = Ss() self.cricket = Cricket() self.poll = Poll() print("done init") self.subkeys = [ "crypto", "translate", "define", "joke", "weather", "giphy", "pnr", "mustread", "poll", "hackernews", "hn", "HN", "motivate", "twitter", "screenshot", "memo", "cricnews", "help", "shorturl", "movie", "currency", "holiday", "lyrics" ] def subscribe_all(self): json = self.client.get_streams()["streams"] streams = [{"name": stream["name"]} for stream in json] self.client.add_subscriptions(streams) def process(self, msg): content = msg["content"].split() sender_email = msg["sender_email"] ttype = msg["type"] stream_name = msg['display_recipient'] stream_topic = msg['subject'] print(content) if sender_email == BOT_MAIL: return print("Sucessfully heard.") if content[0].lower() == "magnus" or content[0] == "@**magnus**": if content[1].lower() == "translate": ip = content[2:] ip = " ".join(ip) message = self.trans.translate(ip) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == "movie": ip = content[2:] ip = " +".join(ip) message = self.movie.about(ip) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == "lyrics": author = content[2] title = content[3:] title = " ".join(title) message = self.lyrics.about(author, title) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == 'holiday': quote_data = self.holiday.holiday() self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": quote_data }) if content[1].lower() == 'currency': x = content[2] y = content[3] quote_data = self.currency.currency(x, y) self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": quote_data }) if content[1].lower() == "cricnews": news = self.cricket.news() self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": news }) if content[1].lower() == 'hackernews' or content[1].lower( ) == 'hn' or content[1].lower() == 'HN': news = self.hacknews.get_hackernews() self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": news }) if content[1].lower() == "crypto": if len(content) > 3 and content[3].lower() == "in": message = self.crypto.get_price(content[2], content[4]) else: message = self.crypto.get_price(content[2]) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == "joke": text = self.joke.tellJoke() self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": text }) # if content[1].lower() == 'motivate': # quote_data = self.motivate.get_quote() # self.client.send_message({ # "type": "stream", # "to": stream_name, # "subject": stream_topic, # "content": quote_data # }) if content[1].lower() == "mustread": email = self.mustread.get_email(self.client.get_members(), msg["content"]) senderusername = self.mustread.get_username( self.client.get_members(), msg["sender_email"]) print(email) self.client.send_message({ "type": "private", "to": email, "content": "**" + senderusername + "** mentioned you in must read ! \nThe message says : " + " ".join(content[2:]) }) if content[1].lower() == "pnr": message = self.pnr.get_pnr(content[2]) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == "screenshot": result = self.ss.get_ss(content[2]) print(result) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": "Screenshot taken :wink:\n[Screenshot Link](" + result + ")" }) if content[1].lower() == "poll": if content[2].lower() == "create": print(",".join(content[4:])) idno = self.poll.create_poll(content[3], content[4:]) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": "Poll Successfully Created and id is : **" + str(idno) + "**" }) elif content[2].lower() == "show": if content[3].lower() == "all": polldetails = self.poll.show_allpoll() self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": polldetails }) else: polldetails = self.poll.show_poll(content[3]) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": "Poll ID: **" + polldetails["id"] + "**\n Question : **" + polldetails["pollname"] + "**\nOption : **" + polldetails["options"] + "**\n Votes : **" + polldetails["votes"] + "**" }) elif content[2].lower() == "vote": vote = self.poll.vote_poll(content[3], content[4]) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": "Your Vote Has Been Recorded!" }) elif content[2].lower() == "delete": if content[3].lower() == "all": deleted = self.poll.delete_allpoll() self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": "all polls has been removed from database" }) else: deleted = self.poll.delete_poll(content[3]) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": "The given poll has been removed from database" }) if content[1].lower() == "shorturl": short_url = self.shortenedurl.get_shorturl(content) self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": short_url }) if content[1] not in self.subkeys: ip = content[1:] ip = " ".join(ip) message = self.Chatbot.get_response(ip).text self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) elif "magnus" in content and content[0] != "magnus": self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": "Hey there! :blush:" }) else: return
class ZulipBot(object): def __init__(self): self.client = zulip.Client(site="https://myra.zulipchat.com/api/") self.subscribe_all() self.hacknews = Hackernews() self.trans = Translate() self.movie = Movie() self.lyrics = Lyrics() self.holiday = Holiday() self.currency = Currency() self.cricket = Cricket() print("done init") self.subkeys = [ "translate", "hackernews", "hn", "hotel", "HN", "askme", "cricnews", "movie", "currency", "holiday", "lyrics" ] def subscribe_all(self): json = self.client.get_streams()["streams"] streams = [{"name": stream["name"]} for stream in json] self.client.add_subscriptions(streams) def process(self, msg): content = msg["content"].split() sender_email = msg["sender_email"] ttype = msg["type"] stream_name = msg['display_recipient'] stream_topic = msg['subject'] print(content) if sender_email == BOT_MAIL: return print("Sucessfully heard.") if content[0].lower() == "myra" or content[0] == "@**myra**": if content[1].lower() == "translate": ip = content[2:] ip = " ".join(ip) message = self.trans.translate(ip) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == "movie": ip = content[2:] ip = " +".join(ip) message = self.movie.about(ip) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == "lyrics": author = content[2] title = content[3:] title = " ".join(title) message = self.lyrics.about(author, title) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == 'holiday': quote_data = self.holiday.holiday() self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": quote_data }) if content[1].lower() == 'currency': x = content[2] y = content[3] quote_data = self.currency.currency(x, y) self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": quote_data }) if content[1].lower() == "cricnews": news = self.cricket.news() self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": news }) if content[1].lower() == 'hackernews' or content[1].lower( ) == 'hn' or content[1].lower() == 'HN': news = self.hacknews.get_hackernews() self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": news }) if content[1] not in self.subkeys: ip = content[1:] ip = " ".join(ip) message = self.chatbot.get_response(ip).text self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) elif "myra" in content and content[0] != "myra": self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": "Hey there! :blush:" }) else: return
class ZulipBot(object): def __init__(self): self.client = zulip.Client(site="https://technh.zulipchat.com/api/", api_key="vkEQgQYDPUgAGmXaTXdMPsMwlkkgMfM5", email="*****@*****.**") self.subscribe_all() self.hacknews = Hackernews() self.trans = Translate() self.movie= Movie() self.lyrics = Lyrics() self.holiday = Holiday() self.currency = Currency() self.cricket = Cricket() self.github = GitHub() self.chatbot = ChatBot(name="technehru") print("done init") self.subkeys = ["use", "help", "translate", "hackernews", "hn", "hotel", "HN", "cricnews", "cricketnews", "movie", "currency", "holiday", "lyrics", "github"] def subscribe_all(self): json = self.client.get_streams()["streams"] streams = [{"name": stream["name"]} for stream in json] self.client.add_subscriptions(streams) def process(self, msg): content = msg["content"].split() sender_email = msg["sender_email"] ttype = msg["type"] stream_name = msg['display_recipient'] stream_topic = msg['subject'] print(content) if sender_email == BOT_MAIL: return print("Sucessfully heard.") if content[0].lower() == "technehru" or content[0] == "@**Technehru**": if content[1].lower() == "help" or content[1].lower() == "use": message = open("help.txt", "r") self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": message.read() }) if content[1].lower() == "translate": ip = content[2:] ip = " ".join(ip) message = self.trans.translate(ip) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == "movie": ip = content[2:] ip = " +".join(ip) message = self.movie.about(ip) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == "lyrics": author = content[2] title = content[3:] title = " ".join(title) message = self.lyrics.about(author, title) self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) if content[1].lower() == 'holiday': quote_data = self.holiday.holiday() self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": quote_data }) if content[1].lower() == 'currency': x = content[2] y = content[3] quote_data = self.currency.currency(x,y) self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": quote_data }) if content[1].lower() == "cricnews" or content[1].lower() == "cricketnews": news = self.cricket.news() self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": news }) if content[1].lower() == 'hackernews' or content[1].lower() == 'hn': news = self.hacknews.get_hackernews() self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": news }) if content[1].lower() == 'github': if content[2].lower() == 'reopen' and content[3].lower() == 'issue': repo = content[4] num = int(content[5]) result = self.github.reopen_issue(repo, num) self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": result }) if content[2].lower() == 'comment' and content[3].lower() == 'issue': repo = content[4] num = int(content[5]) comment = content[6:] comment = " ".join(comment) result = self.github.comment_issue(repo, num, comment) self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": result }) if content[2].lower() == 'close' and content[3].lower() == 'issue': repo = content[4] num = int(content[5]) result = self.github.close_issue(repo, num) self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": result }) if content[2].lower() == 'assign' and content[3].lower() == 'issue': repo = content[4] num = int(content[5]) assignee = content[6] result = self.github.assign_issue(repo, num, assignee) self.client.send_message({ "type": "stream", "to": stream_name, "subject": stream_topic, "content": result }) if content[1] not in self.subkeys: ip = content[1:] ip = " ".join(ip) message = self.chatbot.get_response(ip).text self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": message }) elif "technehru" in content and content[0].lower() != "technehru": self.client.send_message({ "type": "stream", "subject": msg["subject"], "to": msg["display_recipient"], "content": "Hey there! :blush:" }) else: return