Advertisement
Typhoon

Twitter PacktBot

Oct 13th, 2017
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.70 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. import re
  5. import tweepy
  6. import requests
  7. from bs4 import BeautifulSoup
  8.  
  9. CONSUMER_KEY = 'SOME_KEY'
  10. CONSUMER_SECRET = 'SOME_KEY'
  11. ACCESS_KEY = 'SOME_KEY'
  12. ACCESS_SECRET = 'SOME_KEY'
  13. auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
  14. auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
  15. api = tweepy.API(auth)
  16. packt_url = "http://bit.ly/Free-Tech-Learning"
  17. headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
  18. keywords = ["python", "python3", "django", "flask", "numpy", "ipython", "machinelearning", "datascience", "raspberry"]
  19.  
  20. def get_book_name():
  21.     try:
  22.         site = requests.get(packt_url, headers=headers)
  23.         data = site.text
  24.         checksoup = BeautifulSoup(data, "html.parser")
  25.         book = str(checksoup.select(".dotd-title")[0].getText())
  26.         book_name = book.replace("\t", "").replace("\n", "")
  27.         return book_name
  28.     except:
  29.         return 0
  30.  
  31. def tweet_message(message_text):
  32.     try :
  33.         api.update_status(message_text)
  34.     except tweepy.TweepError as e:
  35.         e = eval(str(e))
  36.         print(e[0]['message'], "| Code :", e[0]['code'])
  37.  
  38.  
  39. if __name__ == '__main__':
  40.     book = get_book_name()
  41.     print("Today Book :", book)
  42.     message_en = "Today's free e-book on Packt: %s \nYou can download the book at http://bit.ly/Free-Tech-Learning\nhttp://bit.ly/Free-Tech-Learning" % book
  43.     message_sk = "Dnešná eKnižka zdarma na Packt-e : %s \nVyužite šancu :)\nhttp://bit.ly/Free-Tech-Learning" % book
  44.  
  45.     if any(word in book.lower() for word in keywords):
  46.         try:
  47.             tweet_message(message_en)
  48.         except:
  49.             pass
  50.         try:
  51.             tweet_message(message_sk)
  52.         except:
  53.             pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement