tumblr.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import requests
  2. import simplejson as json
  3. import time
  4. import urllib
  5. import re
  6. from bs4 import BeautifulSoup
  7. import urlparse
  8. import oauth2
  9. blog_uri = "http://api.tumblr.com/v2/blog/"
  10. user_uri = "api.tumblr.com/v2/user/"
  11. #https://www.tumblr.com/oauth/authorize?oauth_token=R9HvkeqKgPAXjor9V92Zg5BvxMm3kwx0kaGnawVHIU5h6dmOL0
  12. """
  13. def getUserInfo():
  14. ''' Return user's information. '''
  15. return "getUserInfo()"
  16. """
  17. def getBlogInfo(user, consumer_key):
  18. ''' Return blogger's blog information. '''
  19. print consumer_key
  20. blog_info = blog_uri + user +".tumblr.com/info?api_key="+consumer_key
  21. req = requests.get(blog_info)
  22. jsonlist = json.loads(req.content)
  23. print jsonlist
  24. meta = jsonlist['meta']
  25. response = jsonlist['response']
  26. blog = response['blog']
  27. blog['updated'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(blog['updated']))
  28. return blog
  29. def getTaggedInfo(tag, consumer_key):
  30. ''' Return tags related to blog with certain tag. '''
  31. tagged_uri = "http://api.tumblr.com/v2/tagged?tag="+tag+"&api_key="+consumer_key+"&limit=20"
  32. req = requests.get(tagged_uri)
  33. jsonlist = json.loads(req.content)
  34. tags = []
  35. meta = jsonlist['meta']
  36. body = jsonlist['response']
  37. for blog in body:
  38. for data in blog:
  39. if data == "tags":
  40. #print blog[data]
  41. for i in blog[data]:
  42. m = re.match("(.*)(s*)s(t*)t(a*)a(r*)r(b*)b(u*)u(c*)c(k*)k(.*)", i.lower())
  43. if not m:
  44. tags.append(i)
  45. return tags
  46. def getTaggedBlog(tag, consumer_key):
  47. ''' Return the tagged blogs's captions or post.'''
  48. tagged_uri = "http://api.tumblr.com/v2/tagged?tag="+tag+"&api_key="+consumer_key+"&limit=2"
  49. req = requests.get(tagged_uri)
  50. jsonlist = json.loads(req.content)
  51. meta = jsonlist['meta']
  52. body = jsonlist['response']
  53. tagtext = []
  54. for blog in body:
  55. print "####"
  56. for data in blog:
  57. #post
  58. if data == "body":
  59. if blog[data]:
  60. #print blog[data]
  61. soup = BeautifulSoup(blog[data])
  62. text = soup.get_text()
  63. tagtext.append(text)
  64. #an image
  65. if data == "caption":
  66. if blog[data]:
  67. #print blog[data]
  68. soup = BeautifulSoup(blog[data])
  69. text = soup.get_text()
  70. tagtext.append(text)
  71. return tagtext