From 671dd3b5d9d8fc72ca520a78656fc509785c40c8 Mon Sep 17 00:00:00 2001 From: Klaus-Uwe Mitterer Date: Sat, 10 Oct 2015 21:14:51 +0200 Subject: [PATCH] Check in initial version of the Tweleter --- tweleter.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 tweleter.py diff --git a/tweleter.py b/tweleter.py new file mode 100755 index 0000000..dd799c1 --- /dev/null +++ b/tweleter.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 + +import config, tools + +import tkinter, tkinter.messagebox, html.parser, os + +two = tools.twObject() +top = tkinter.Tk() +top.title("Tweet Deleter") +scrollbar = tkinter.Scrollbar(top) +scrollbar.pack(side=tkinter.RIGHT, fill=tkinter.Y) +list = tkinter.Listbox(top, height=20, width=150, selectmode=tkinter.MULTIPLE, yscrollcommand=scrollbar.set) +scrollbar.config(command=list.yview) + +def deleteTweets(): + top.wm_withdraw() + tweets = list.curselection() + + success = 0 + fail = 0 + + for tweet in tweets: + id = int(list.get(tweet).rsplit(None, 1)[-1]) + try: + print(id) + two.delete(id) + success += 1 + except: + fail += 1 + + tkinter.messagebox.showinfo('Deleted tweets', 'Deleted %i tweets. %i errors.' % (success, fail)) + top.destroy() + +button = tkinter.Button(top, text="Delete", command=deleteTweets) + +def unescapeText(text): + return html.parser.HTMLParser().unescape(text) + +def addStatus(id, text): + element = "%s - %i" % (text, id) + list.insert(0, element.encode("UTF-8")) + +def getTweets(): + query = "from:" + config.user + + try: + timeline = two.search(query, 0) + except: + tkinter.messagebox.showerror('Error...', 'An error occurred. Most likely you hit a rate limit. Please try again later.') + exit() + + for status in timeline: + addStatus(status.id, unescapeText(status.text)) + +if __name__ == "__main__": + getTweets() + list.pack() + button.pack() + top.mainloop()