Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.54 KB | None | 0 0
  1. @socketio.on('add blog')
  2. @admin_only
  3. def add_blog(blog):
  4.     scheme = blog_schema.load(blog, partial=True)
  5.     known_tags = {}
  6.     avoided_tags = Tag.query.filter(
  7.             Tag.banned == True).all()
  8.     tumblr_key = 'Gm7u68GMu8RCQmIVV1vmr7QlToZ8rYKrzr1HsULlmK0doez73o'
  9.     http = urllib3.PoolManager()
  10.     blog_json_url = "https://api.tumblr.com/v2/blog/"+scheme.data.url+"/posts/photo?api_key="+tumblr_key
  11.     r = http.request('GET', blog_json_url)
  12.     data = json.loads(r.data.decode('utf-8'))
  13.     if data["meta"]["status"] is 200:
  14.         b = Blog(name=scheme.data.name, url=scheme.data.url)
  15.         db.session.add(b)
  16.         total_posts = data["response"]["total_posts"]
  17.         blog_json_url+="&offset="
  18.         for i in range(0,total_posts,50):
  19.             r = http.request('GET', blog_json_url+str(i))
  20.             data = json.loads(r.data.decode('utf-8'))
  21.             for post in data["response"]["posts"]:
  22.                 if post["type"] == "photo":
  23.                     for photo in post["photos"]:
  24.                         url_gif = photo["original_size"]["url"]
  25.                         if url_gif[-3:] == "gif":
  26.                             # photo["original_size"]["width"] pour trier si le gif est trop petit ?
  27.                             gif = Gif(url=url_gif)
  28.                             db.session.add(gif)
  29.                             for l_tag in post["tags"]:
  30.                                 # sometimes l_tag is a list of tag seperated by blank spaces
  31.                                 # so we need to split this string ang get a list of tags
  32.                                 l_tag = l_tag.split(' ')
  33.                                 for tag in l_tag:
  34.                                     tag = tag.lower()
  35.                                     if not tag.isspace():
  36.                                         if tag not in avoided_tags and len(tag)>2:
  37.                                                 if tag not in known_tags :
  38.                                                     o = Tag(name=tag)
  39.                                                     db.session.add(o)
  40.                                                     db.session.commit()
  41.                                                     known_tags[tag] = o
  42.                                                 if known_tags[tag] not in gif.tags :
  43.                                                     gif.tags.append(known_tags[tag])
  44.                             db.session.commit()
  45.         return jsonify(success=True)
  46.     else:
  47.         return jsonify(success=True, error="blog invalid or offline")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement