Advertisement
GuestAnon

Raid ID auto copier v3

Sep 6th, 2016
1,036
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.31 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import tweepy
  3. import json
  4. import re
  5. import pyperclip
  6. import threading
  7. import Tkinter as tk
  8. import winsound
  9. from functools import partial
  10.  
  11. canCopy=0
  12. sndNotif=0
  13. search = []
  14. class TwitterStreamListener(tweepy.StreamListener):
  15.    
  16.     def on_data(self, data):
  17.         json_load = json.loads(data)
  18.         texts = json_load['text']
  19.         coded = texts.encode('utf-8')
  20.         st = str(coded)
  21.         m = re.search('ID:([A-z0-9]{8})', st)
  22.         m2 = re.search('ID: ([A-z0-9]{8})', st)
  23.         print "\n"
  24.         print st
  25.         if m:
  26.             found = m.group(1)
  27.             if canCopy==1:
  28.                 pyperclip.copy(found)
  29.             if sndNotif==1:
  30.                 winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
  31.         if m2:
  32.             found = m2.group(1)
  33.             if canCopy==1:
  34.                 pyperclip.copy(found)
  35.             if sndNotif==1:
  36.                 winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
  37.         return True
  38.  
  39.     def on_error(self, status):
  40.         if status == 420:
  41.             print "Rate-limited, slow down"
  42.         else:
  43.             print status
  44.         return False
  45.  
  46. class simpleui(tk.Tk):
  47.     def __init__(self,parent):
  48.         tk.Tk.__init__(self,parent)
  49.         self.parent = parent
  50.         self.initialize()
  51.     def initialize(self):
  52.         self.copying=tk.IntVar()
  53.         self.snd=tk.IntVar()
  54.         self.button1 = tk.Checkbutton(self, variable=self.copying, onvalue=1, offvalue=0, text='Auto-copy?',command = self.changeCp)
  55.         self.button2 = tk.Checkbutton(self, variable=self.snd, onvalue=1, offvalue=0, text='Toggle sound',command = self.changeSnd)
  56.         self.button1.grid(row=0, column=0, sticky=tk.W)
  57.         self.button2.grid(row=1, column=0, sticky=tk.W)
  58.        
  59.         raidList = {'Tiamat Magna' : u"Lv50 ティアマト・マグナ"
  60.                     ,'Yggdrasil Magna' : u"Lv60 ユグドラシル・マグナ"
  61.                     ,'Leviathan Magna' : u"Lv60 リヴァイアサン・マグナ"
  62.                     ,'Colossus Magna' : u"Lv70 コロッサス・マグナ"
  63.                     ,'Chevalier Magna' : u"Lv75 シュヴァリエ・マグナ"
  64.                     ,'Celeste Magna' : u"Lv75 セレスト・マグナ"
  65.                     ,'Flam=Glass' : u"Lv100 フラム=グラス"
  66.                     ,'Macula Marius' : u"Lv100 マキュラ・マリウス"
  67.                     ,'Medusa' : u"Lv100 メドゥーサ"
  68.                     ,'Nataku' : u"Lv100 ナタク"
  69.                     ,'Apollo' : u"Lv100 アポロン"
  70.                     ,'Dark Angel Olivia' : u"Lv100 Dエンジェル・オリヴィエ"
  71.                     ,'Athena' : u"Lv100 アテナ"
  72.                     ,'Grani' : u"Lv100 グラニ"
  73.                     ,'Baal' : u"Lv100 バアル"
  74.                     ,'Garuda' : u"Lv100 ガルーダ"
  75.                     ,'Odin' : u"Lv100 オーディン"
  76.                     ,'Lich' : u"Lv100 リッチ"
  77.                     ,'Grande' : u"Lv100 ジ・オーダー・グランデ"
  78.                     ,'Proto Bahamut' : u"Lv100 プロトバハムート"
  79.                     ,'Kirin': u"Lv100 黒麒麟"
  80.                     ,'Tiamat HL' : u"Lv100 ティアマト・マグナ=エア"
  81.                     ,'Yggdrasil HL' : u"Lv100 ユグドラシル・マグナ"
  82.                     ,'Leviathan HL' : u"Lv100 リヴァイアサン・マグナ"
  83.                     ,'Colossus HL' : u"Lv100 コロッサス・マグナ"
  84.                     ,'Chevalier HL' : u"Lv100 シュヴァリエ・マグナ"
  85.                     ,'Celeste HL' : u"Lv100 セレスト・マグナ"
  86.                     ,'Nataku HL' : u"Lv120 ナタク"
  87.                     ,'Macula Marius HL' : u"Lv120 マキュラ・マリウス"
  88.                     ,'Apollo HL' : u"Lv120 アポロン"
  89.                     ,'DAngel Olivia HL' : u"Lv120 Dエンジェル・オリヴィエ"
  90.                     ,'Medusa HL' : u"Lv120 メドゥーサ"
  91.                     ,'Flam=Glass HL' : u"Lv120 フラム=グラス"
  92.                     ,'Rosequeen HL' : u"Lv110 ローズクイーン"
  93.                     ,'Baha HL' : u"Lv150 プロトバハムート"
  94.                     #To add custom (such as event/celestial) raids copy the next line for as many raids as needed and remove the # before it
  95.                     #,'_______' : u"_________________"
  96.                     }
  97.         rownum=0
  98.         maxrow=len(raidList)/2
  99.         for raid in sorted(raidList):
  100.             self.r = tk.Checkbutton(self, text=raid, command=partial(self.showShit, raidList[raid]))
  101.             if rownum < maxrow:
  102.                 self.r.grid(row=rownum, column=1, sticky=tk.W)
  103.             else:
  104.                 self.r.grid(row=rownum-maxrow, column=2, sticky=tk.W)
  105.             rownum +=1
  106.         self.launcher = tk.Button(self, text="Start Stream", command=self.start_stream)
  107.         self.launcher.grid(row=2, column=0)
  108.     def start_stream(self):
  109.         init_stream()
  110.         self.launcher.config(state=tk.DISABLED)
  111.         print "Stream started"
  112.     def showShit(self, raid):
  113.         global search
  114.         if raid in search:
  115.             print "Removed "+raid
  116.             search.remove(raid)
  117.         else:
  118.             print "Added "+raid
  119.             search.append(raid)
  120.     def changeCp(self):
  121.         global canCopy
  122.         canCopy=self.copying.get()
  123.         if self.copying.get()==1:
  124.             print "\nAuto-copying enabled"
  125.         if self.copying.get()==0:
  126.             print "\nAuto-copying disabled"
  127.     def changeSnd(self):
  128.         global sndNotif
  129.         sndNotif=self.snd.get()
  130.         if self.snd.get()==1:
  131.             print "\nSound enabled"
  132.         if self.snd.get()==0:
  133.             print "\nSound disabled"
  134.  
  135. def init_stream():
  136.     consumer_key = '_____'
  137.     consumer_secret = '_____'
  138.     access_token = '_____'
  139.     access_token_secret = '_____'
  140.  
  141.     auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
  142.     auth.secure = True
  143.     auth.set_access_token(access_token, access_token_secret)
  144.     api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
  145.     streamListener = TwitterStreamListener()
  146.     myStream = tweepy.Stream(auth=api.auth, listener=streamListener)
  147.     myStream.filter(track=search, async=True)
  148.  
  149. if __name__ == "__main__":
  150.     app = simpleui(None)
  151.     app.title('ID copier')
  152.     app.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement