Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace urllib2 components in got3, pep8 #129

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 69 additions & 52 deletions Exporter.py
Original file line number Diff line number Diff line change
@@ -1,79 +1,96 @@
# -*- coding: utf-8 -*-
import sys,getopt,datetime,codecs
import sys
import getopt
import datetime
import codecs
if sys.version_info[0] < 3:
import got
else:
import got3 as got


def main(argv):

if len(argv) == 0:
print('You must pass some parameters. Use \"-h\" to help.')
return
if len(argv) == 0:
print('You must pass some parameters. Use \"-h\" to help.')
return

if len(argv) == 1 and argv[0] == '-h':
f = open('exporter_help_text.txt', 'r')
print f.read()
f.close()

return

try:
opts, args = getopt.getopt(argv, "", ("username=", "near=", "within=", "since=",
"until=", "querysearch=", "toptweets", "maxtweets=", "output="))

tweetCriteria = got.manager.TweetCriteria()
outputFileName = "output_got.csv"

if len(argv) == 1 and argv[0] == '-h':
f = open('exporter_help_text.txt', 'r')
print f.read()
f.close()
for opt, arg in opts:
if opt == '--username':
tweetCriteria.username = arg

return
elif opt == '--since':
tweetCriteria.since = arg

try:
opts, args = getopt.getopt(argv, "", ("username=", "near=", "within=", "since=", "until=", "querysearch=", "toptweets", "maxtweets=", "output="))
elif opt == '--until':
tweetCriteria.until = arg

tweetCriteria = got.manager.TweetCriteria()
outputFileName = "output_got.csv"
elif opt == '--querysearch':
tweetCriteria.querySearch = arg

for opt,arg in opts:
if opt == '--username':
tweetCriteria.username = arg
elif opt == '--toptweets':
tweetCriteria.topTweets = True

elif opt == '--since':
tweetCriteria.since = arg
elif opt == '--maxtweets':
tweetCriteria.maxTweets = int(arg)

elif opt == '--until':
tweetCriteria.until = arg
elif opt == '--near':
tweetCriteria.near = '"' + arg + '"'

elif opt == '--querysearch':
tweetCriteria.querySearch = arg
elif opt == '--within':
tweetCriteria.within = '"' + arg + '"'

elif opt == '--toptweets':
tweetCriteria.topTweets = True
elif opt == '--within':
tweetCriteria.within = '"' + arg + '"'

elif opt == '--maxtweets':
tweetCriteria.maxTweets = int(arg)

elif opt == '--near':
tweetCriteria.near = '"' + arg + '"'

elif opt == '--within':
tweetCriteria.within = '"' + arg + '"'
elif opt == '--output':
outputFileName = arg

elif opt == '--within':
tweetCriteria.within = '"' + arg + '"'
outputFile = codecs.open(outputFileName, "w+", "utf-8")

elif opt == '--output':
outputFileName = arg

outputFile = codecs.open(outputFileName, "w+", "utf-8")
outputFile.write('username;date;retweets;favorites;text;geo;mentions;hashtags;id;permalink')

outputFile.write('username;date;retweets;favorites;text;geo;mentions;hashtags;id;permalink')
print('Searching...\n')

print('Searching...\n')
def receiveBuffer(tweets):
for t in tweets:
outputFile.write(
('\n%s;%s;%d;%d;"%s";%s;%s;%s;"%s";%s' %
(t.username,
t.date.strftime("%Y-%m-%d %H:%M"),
t.retweets,
t.favorites,
t.text,
t.geo,
t.mentions,
t.hashtags,
t.id,
t.permalink)))
outputFile.flush()
print('More %d saved on file...\n' % len(tweets))

def receiveBuffer(tweets):
for t in tweets:
outputFile.write(('\n%s;%s;%d;%d;"%s";%s;%s;%s;"%s";%s' % (t.username, t.date.strftime("%Y-%m-%d %H:%M"), t.retweets, t.favorites, t.text, t.geo, t.mentions, t.hashtags, t.id, t.permalink)))
outputFile.flush();
print('More %d saved on file...\n' % len(tweets))
got.manager.TweetManager.getTweets(tweetCriteria, receiveBuffer)

got.manager.TweetManager.getTweets(tweetCriteria, receiveBuffer)
except arg:
print('Arguments parser error, try -h' + arg)
finally:
outputFile.close()
print('Done. Output file generated "%s".' % outputFileName)

except arg:
print('Arguments parser error, try -h' + arg)
finally:
outputFile.close()
print('Done. Output file generated "%s".' % outputFileName)

if __name__ == '__main__':
main(sys.argv[1:])
main(sys.argv[1:])
46 changes: 26 additions & 20 deletions Main.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,39 @@
else:
import got3 as got


def main():

def printTweet(descr, t):
print(descr)
print("Username: %s" % t.username)
print("Retweets: %d" % t.retweets)
print("Text: %s" % t.text)
print("Mentions: %s" % t.mentions)
print("Hashtags: %s\n" % t.hashtags)
def printTweet(descr, t):
print(descr)
print("Username: %s" % t.username)
print("Retweets: %d" % t.retweets)
print("Text: %s" % t.text)
print("Mentions: %s" % t.mentions)
print("Hashtags: %s\n" % t.hashtags)

# Example 1 - Get tweets by username
tweetCriteria = got.manager.TweetCriteria().setUsername('barackobama').setMaxTweets(1)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]

# Example 1 - Get tweets by username
tweetCriteria = got.manager.TweetCriteria().setUsername('barackobama').setMaxTweets(1)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]
printTweet("### Example 1 - Get tweets by username [barackobama]", tweet)

printTweet("### Example 1 - Get tweets by username [barackobama]", tweet)
# Example 2 - Get tweets by query search
tweetCriteria = got.manager.TweetCriteria().setQuerySearch(
'europe refugees').setSince("2015-05-01").setUntil("2015-09-30").setMaxTweets(1)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]

# Example 2 - Get tweets by query search
tweetCriteria = got.manager.TweetCriteria().setQuerySearch('europe refugees').setSince("2015-05-01").setUntil("2015-09-30").setMaxTweets(1)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]
printTweet("### Example 2 - Get tweets by query search [europe refugees]", tweet)

printTweet("### Example 2 - Get tweets by query search [europe refugees]", tweet)
# Example 3 - Get tweets by username and bound dates
tweetCriteria = got.manager.TweetCriteria().setUsername(
"barackobama").setSince("2015-09-10").setUntil("2015-09-12").setMaxTweets(1)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]

# Example 3 - Get tweets by username and bound dates
tweetCriteria = got.manager.TweetCriteria().setUsername("barackobama").setSince("2015-09-10").setUntil("2015-09-12").setMaxTweets(1)
tweet = got.manager.TweetManager.getTweets(tweetCriteria)[0]
printTweet(
"### Example 3 - Get tweets by username and bound dates [barackobama, '2015-09-10', '2015-09-12']",
tweet)

printTweet("### Example 3 - Get tweets by username and bound dates [barackobama, '2015-09-10', '2015-09-12']", tweet)

if __name__ == '__main__':
main()
main()
2 changes: 1 addition & 1 deletion got/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import models
import manager
import manager
72 changes: 36 additions & 36 deletions got/manager/TweetCriteria.py
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
class TweetCriteria:
def __init__(self):
self.maxTweets = 0
self.within = "15mi"
def setUsername(self, username):
self.username = username
return self
def setSince(self, since):
self.since = since
return self
def setUntil(self, until):
self.until = until
return self
def setQuerySearch(self, querySearch):
self.querySearch = querySearch
return self
def setMaxTweets(self, maxTweets):
self.maxTweets = maxTweets
return self

def setTopTweets(self, topTweets):
self.topTweets = topTweets
return self
def setNear(self, near):
self.near = near
return self

def setWithin(self, within):
self.within = within
return self

def __init__(self):
self.maxTweets = 0
self.within = "15mi"

def setUsername(self, username):
self.username = username
return self

def setSince(self, since):
self.since = since
return self

def setUntil(self, until):
self.until = until
return self

def setQuerySearch(self, querySearch):
self.querySearch = querySearch
return self

def setMaxTweets(self, maxTweets):
self.maxTweets = maxTweets
return self

def setTopTweets(self, topTweets):
self.topTweets = topTweets
return self

def setNear(self, near):
self.near = near
return self

def setWithin(self, within):
self.within = within
return self
Loading