Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import tweepy
- import json
- import re
- import pyperclip
- import threading
- import Tkinter as tk
- import winsound
- from functools import partial
- canCopy=0
- sndNotif=0
- search = []
- class TwitterStreamListener(tweepy.StreamListener):
- def on_data(self, data):
- json_load = json.loads(data)
- texts = json_load['text']
- coded = texts.encode('utf-8')
- st = str(coded)
- m = re.search('ID:([A-z0-9]{8})', st)
- m2 = re.search('ID: ([A-z0-9]{8})', st)
- print "\n"
- print st
- if m:
- found = m.group(1)
- if canCopy==1:
- pyperclip.copy(found)
- if sndNotif==1:
- winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
- if m2:
- found = m2.group(1)
- if canCopy==1:
- pyperclip.copy(found)
- if sndNotif==1:
- winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
- return True
- def on_error(self, status):
- if status == 420:
- print "Rate-limited, slow down"
- else:
- print status
- return False
- class simpleui(tk.Tk):
- def __init__(self,parent):
- tk.Tk.__init__(self,parent)
- self.parent = parent
- self.initialize()
- def initialize(self):
- self.copying=tk.IntVar()
- self.snd=tk.IntVar()
- self.button1 = tk.Checkbutton(self, variable=self.copying, onvalue=1, offvalue=0, text='Auto-copy?',command = self.changeCp)
- self.button2 = tk.Checkbutton(self, variable=self.snd, onvalue=1, offvalue=0, text='Toggle sound',command = self.changeSnd)
- self.button1.grid(row=0, column=0, sticky=tk.W)
- self.button2.grid(row=1, column=0, sticky=tk.W)
- raidList = {'Tiamat Magna' : u"Lv50 ティアマト・マグナ"
- ,'Yggdrasil Magna' : u"Lv60 ユグドラシル・マグナ"
- ,'Leviathan Magna' : u"Lv60 リヴァイアサン・マグナ"
- ,'Colossus Magna' : u"Lv70 コロッサス・マグナ"
- ,'Chevalier Magna' : u"Lv75 シュヴァリエ・マグナ"
- ,'Celeste Magna' : u"Lv75 セレスト・マグナ"
- ,'Flam=Glass' : u"Lv100 フラム=グラス"
- ,'Macula Marius' : u"Lv100 マキュラ・マリウス"
- ,'Medusa' : u"Lv100 メドゥーサ"
- ,'Nataku' : u"Lv100 ナタク"
- ,'Apollo' : u"Lv100 アポロン"
- ,'Dark Angel Olivia' : u"Lv100 Dエンジェル・オリヴィエ"
- ,'Athena' : u"Lv100 アテナ"
- ,'Grani' : u"Lv100 グラニ"
- ,'Baal' : u"Lv100 バアル"
- ,'Garuda' : u"Lv100 ガルーダ"
- ,'Odin' : u"Lv100 オーディン"
- ,'Lich' : u"Lv100 リッチ"
- ,'Grande' : u"Lv100 ジ・オーダー・グランデ"
- ,'Proto Bahamut' : u"Lv100 プロトバハムート"
- ,'Kirin': u"Lv100 黒麒麟"
- ,'Tiamat HL' : u"Lv100 ティアマト・マグナ=エア"
- ,'Yggdrasil HL' : u"Lv100 ユグドラシル・マグナ"
- ,'Leviathan HL' : u"Lv100 リヴァイアサン・マグナ"
- ,'Colossus HL' : u"Lv100 コロッサス・マグナ"
- ,'Chevalier HL' : u"Lv100 シュヴァリエ・マグナ"
- ,'Celeste HL' : u"Lv100 セレスト・マグナ"
- ,'Nataku HL' : u"Lv120 ナタク"
- ,'Macula Marius HL' : u"Lv120 マキュラ・マリウス"
- ,'Apollo HL' : u"Lv120 アポロン"
- ,'DAngel Olivia HL' : u"Lv120 Dエンジェル・オリヴィエ"
- ,'Medusa HL' : u"Lv120 メドゥーサ"
- ,'Flam=Glass HL' : u"Lv120 フラム=グラス"
- ,'Rosequeen HL' : u"Lv110 ローズクイーン"
- ,'Baha HL' : u"Lv150 プロトバハムート"
- #To add custom (such as event/celestial) raids copy the next line for as many raids as needed and remove the # before it
- #,'_______' : u"_________________"
- }
- rownum=0
- maxrow=len(raidList)/2
- for raid in sorted(raidList):
- self.r = tk.Checkbutton(self, text=raid, command=partial(self.showShit, raidList[raid]))
- if rownum < maxrow:
- self.r.grid(row=rownum, column=1, sticky=tk.W)
- else:
- self.r.grid(row=rownum-maxrow, column=2, sticky=tk.W)
- rownum +=1
- self.launcher = tk.Button(self, text="Start Stream", command=self.start_stream)
- self.launcher.grid(row=2, column=0)
- def start_stream(self):
- init_stream()
- self.launcher.config(state=tk.DISABLED)
- print "Stream started"
- def showShit(self, raid):
- global search
- if raid in search:
- print "Removed "+raid
- search.remove(raid)
- else:
- print "Added "+raid
- search.append(raid)
- def changeCp(self):
- global canCopy
- canCopy=self.copying.get()
- if self.copying.get()==1:
- print "\nAuto-copying enabled"
- if self.copying.get()==0:
- print "\nAuto-copying disabled"
- def changeSnd(self):
- global sndNotif
- sndNotif=self.snd.get()
- if self.snd.get()==1:
- print "\nSound enabled"
- if self.snd.get()==0:
- print "\nSound disabled"
- def init_stream():
- consumer_key = '_____'
- consumer_secret = '_____'
- access_token = '_____'
- access_token_secret = '_____'
- auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
- auth.secure = True
- auth.set_access_token(access_token, access_token_secret)
- api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
- streamListener = TwitterStreamListener()
- myStream = tweepy.Stream(auth=api.auth, listener=streamListener)
- myStream.filter(track=search, async=True)
- if __name__ == "__main__":
- app = simpleui(None)
- app.title('ID copier')
- app.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement