diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..00a2ec6a3996c3fcf84d7e361071977b492847f0
Binary files /dev/null and b/.DS_Store differ
diff --git a/ueb07/trumptweets.py b/ueb07/trumptweets.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b513bcca65806b3e1cc0149ceb05d73d1bc0916
--- /dev/null
+++ b/ueb07/trumptweets.py
@@ -0,0 +1,97 @@
+from __future__ import absolute_import, print_function
+from tweepy.streaming import StreamListener
+from tweepy import OAuthHandler
+from tweepy import Stream
+from bs4 import BeautifulSoup
+import psycopg2 # fuer Zugriff auf Datenbank
+import requests
+import json # damit wir die Tweet Daten lesen und parsen koennen
+import csv # um CSV Datei zu oeffnen und schreiben
+import os.path # um zu ueberpruefen, ob CSV Datei schon existiert
+import time # fuer sleep
+
+class StdOutListener(StreamListener):
+    """ A listener handles tweets that are received from the stream.
+    This is a basic listener that just prints received tweets to stdout.
+    """
+    def on_data(self, data):
+        decoded = json.loads(data) # Ausgabe von Twitter API wird als JSON dargestellt
+        try: # ignoriert alle Retweets
+            isRT = decoded['retweeted_status']
+            print("This was a retweet! Ignored.")
+            pass
+        except KeyError:
+            user_id = decoded['user']['screen_name']
+            text = decoded['text']
+            time = decoded['created_at']
+            tweet_id = decoded['id']
+            hashlist = decoded['entities']['hashtags']
+            hashes = []
+            for entry in hashlist:
+                hashes.append(str(entry['text']))
+            print("User: "+str(user_id))
+            print("Text: "+str(text))
+            print("Posted On: "+str(time))
+            print("ID: "+str(tweet_id))
+            print("Hashtags: "+str(hashes))
+            print("\n")
+            tweetdata = (tweet_id,user_id,text,time,hashes)
+            fwriter.writerow(list(tweetdata)) # schreibt eine neue Zeile in CSV Datei
+            tweet_insertion = """INSERT INTO trumptweets (tweet_id,user_id,text,time,hashes) VALUES (%s, %s, %s, %s, %s)"""
+            cursor.execute(tweet_insertion, tweetdata)
+            conn.commit() # schreibt eine neue Zeile im Datenbank
+            return True        
+
+    def on_error(self, status):
+        print(status)
+        f.close()
+
+### Benutzer wird gefragt, fuer wie viele Sekunden werden Tweets gesammelt/wird Stream geoeffnet
+timeout = 0
+while True:
+    try:
+        while timeout <= 0:
+            timeout = int(input("How long (in seconds) do you want to collect tweets? "))
+            if timeout <= 0:
+                print("Invalid input. Please enter an integer greater than 0!")
+        break
+    except ValueError:
+        print("Invalid input. Please enter an integer greater than 0!")
+
+### Zugriff auf Twitter API
+CONSUMER_KEY = '###'
+CONSUMER_SECRET = '###'
+ACCESS_TOKEN = '###' 
+ACCESS_SECRET = '###'
+
+### Falls CSV Datei existiert, dann werden neue Zeile einfach hinzugefuegt, sonst wird die Datei mit dem entsprechenden Header erzeugt
+if os.path.isfile('trumptweets.csv'):
+    f = open('trumptweets.csv', 'a')
+else:
+    f = open('trumptweets.csv', 'w')
+    head = "TWEET_ID;USER;TEXT;TIMESTAMP;HASHTAGS\n"
+    f.write(head)
+    
+### CSV Writer Objekt erzeugt. Wir nutzen Semikolons als delimiter.
+fwriter = csv.writer(f, delimiter=';')
+
+### Um mit dem Datenbank zu verbinden
+conn_string = "host='agdbs-edu01.imp.fu-berlin.de' port='5432' dbname='trumptweets' user='student' password='password'" #damit koennen wir eine Verbindung mit unserer Datenbank erstellen
+    
+try:
+    #durch conn_string versuchen wir hier eine Verbindung mit unserer Datenbank zu machen
+    conn = psycopg2.connect(conn_string)
+    cursor = conn.cursor()
+except:
+    print ("Not connected!")
+
+listener = StdOutListener()
+auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
+auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
+stream = Stream(auth, listener)
+stream.filter(track=['@realDonaldTrump'], async=True) # async=True damit wir den Stream schliessen koennen
+time.sleep(timeout) # Prozess beendet nach timeout viele Sekunden
+stream.disconnect()
+cursor.close()
+conn.close()
+print(str(timeout)+" seconds are over. All done.")
\ No newline at end of file