|
|
@ -46,6 +46,26 @@ class PublicRelations(Bureau):
|
|
|
|
self.auth = twitter.OAuth(oauth_token, oauth_secret, CK, CS)
|
|
|
|
self.auth = twitter.OAuth(oauth_token, oauth_secret, CK, CS)
|
|
|
|
self.t.t = twitter.Twitter(auth=self.auth)
|
|
|
|
self.t.t = twitter.Twitter(auth=self.auth)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# setup DBs to map short codes to tweet ids
|
|
|
|
|
|
|
|
self.tweetdb = self.dbenv.open_db(b"tweetdb")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_tweet_id(self, tweet_hash):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
take a short code and look up the tweet id
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
with self.dbenv.begin(db=self.tweetdb) as txn:
|
|
|
|
|
|
|
|
tweetid = txn.get(tweet_hash.encode())
|
|
|
|
|
|
|
|
return int(tweetid)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def short_tweet_id(self, tweet_id):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
take a tweet id and return a short alphanumeric code
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
shortcode = ''.join(random.choice(string.ascii_letters + string.digits)
|
|
|
|
|
|
|
|
for _ in range(5)).encode()
|
|
|
|
|
|
|
|
with self.dbenv.begin(db=self.tweetdb, write=True) as txn:
|
|
|
|
|
|
|
|
txn.put(shortcode, msgid.encode())
|
|
|
|
|
|
|
|
|
|
|
|
@add_command("tweetpic", "Post a Document Camera Image to Twitter")
|
|
|
|
@add_command("tweetpic", "Post a Document Camera Image to Twitter")
|
|
|
|
def tweet_pic(self):
|
|
|
|
def tweet_pic(self):
|
|
|
|
"""
|
|
|
|
"""
|
|
|
@ -74,7 +94,7 @@ class PublicRelations(Bureau):
|
|
|
|
# message='testing screenless post')
|
|
|
|
# message='testing screenless post')
|
|
|
|
print("uploading photo " + photo)
|
|
|
|
print("uploading photo " + photo)
|
|
|
|
graph.put_photo(image=open(photo, 'rb'), album_path=page_id + "/photos",
|
|
|
|
graph.put_photo(image=open(photo, 'rb'), album_path=page_id + "/photos",
|
|
|
|
message='test photo')
|
|
|
|
message='#screenless')
|
|
|
|
#files = {"file": ("cam.jpg", open(photo, 'rb'))}
|
|
|
|
#files = {"file": ("cam.jpg", open(photo, 'rb'))}
|
|
|
|
#args = {}
|
|
|
|
#args = {}
|
|
|
|
#args["access_token"] = access_token
|
|
|
|
#args["access_token"] = access_token
|
|
|
@ -130,12 +150,51 @@ class PublicRelations(Bureau):
|
|
|
|
im.thumbnail((576, 576), PIL.Image.ANTIALIAS)
|
|
|
|
im.thumbnail((576, 576), PIL.Image.ANTIALIAS)
|
|
|
|
prn.image(im, impl="bitImageColumn")
|
|
|
|
prn.image(im, impl="bitImageColumn")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tw_shortcode = self.short_tweet_id(t["id_str"])
|
|
|
|
|
|
|
|
prn.barcode("PRtwd." + hash_id, "CODE128", function_type="B")
|
|
|
|
prn.text("\r\n\r\n")
|
|
|
|
prn.text("\r\n\r\n")
|
|
|
|
|
|
|
|
|
|
|
|
prn.cut()
|
|
|
|
prn.cut()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@add_command("twd", "Print Tweet Details")
|
|
|
|
|
|
|
|
def tw_details(self, data):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
Print detailed tweet info and commands for reply, like, retweet, etc.
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
tweet_id = self.get_tweet_id(data)
|
|
|
|
|
|
|
|
tweet = self.t.t.statuses.show(id=tweet_id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# TODO: print tweet details
|
|
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@add_command("twrt", "Re-Tweet")
|
|
|
|
|
|
|
|
def tw_retweet(self, data):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
Re-Tweet a tweet from someone else.
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
tweet_id = self.get_tweet_id(data)
|
|
|
|
|
|
|
|
self.t.t.statuses.retweet(id=tweet_id)
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@add_command("twre", "Reply to Tweet")
|
|
|
|
|
|
|
|
def tw_reply(self, data):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
Reply to a tweet.
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
# TODO: look up tweet id
|
|
|
|
|
|
|
|
#self.t.t.statuses.update(status="@AUTHOR_ID", media_ids=id_img1)
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@add_command("twlk", "Like a Tweet")
|
|
|
|
|
|
|
|
def tw_like(self, data):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
'Like' a tweet.
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
tweet_id = self.get_tweet_id(data)
|
|
|
|
|
|
|
|
self.t.t.favorites.create(id=tweet_id)
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
def main():
|
|
|
|
pr = PublicRelations()
|
|
|
|
pr = PublicRelations()
|
|
|
|
pr.run()
|
|
|
|
pr.run()
|
|
|
|