Beispiel #1
0
 def followers(self):
     url = 'http://twitter.com/followers/ids.json'
     result = urlfetch.fetch(
         url     = url,
         headers = self.auth_header,
         )
     logging.debug(result.status_code)
     logging.debug(result.content)
     if result.status_code == 200:
         keys = ["id:%d" % (id) for id in simplejson.loads(result.content)]
         # 既に登録されているidかどうかをチェックする
         for id in IDS.all().filter('follower =', True):
             key_name = id.key().name()
             # 登録されていれば処理の必要なし
             if key_name in keys:
                 keys.remove(key_name)
             # フォローされている筈だったのが外されている場合
             else:
                 id.follower = False
                 id.put()
         # 新規にフォローされたidとして登録
         ids = []
         for key in keys:
             id = IDS.get_by_key_name(key)
             if id == None:
                 id = IDS(key_name = key, friend = False)
             id.follower = True
             ids.append(id)
         db.put(ids)
Beispiel #2
0
 def destroy(self):
     # リムーブすべきidの抽出
     query = IDS.all()
     query.filter("friend =", True)
     query.filter("follower =", False)
     ids = query.fetch(100)
     if len(ids) == 0:
         return
     # APIへの送信
     id = random.choice(ids)
     url = "http://twitter.com/friendships/destroy/%s.json" % (id.key().name()[3:])
     result = urlfetch.fetch(url=url, method=urlfetch.POST, headers=self.auth_header)
     logging.debug(result.status_code)
     logging.debug(result.content)
     if result.status_code == 200:
         # 内部データの更新
         id.delete()
Beispiel #3
0
 def destroy(self):
     # リムーブすべきidの抽出
     query = IDS.all()
     query.filter('friend =',   True)
     query.filter('follower =', False)
     id = query.get()
     if id:
         # APIへの送信
         url = 'http://twitter.com/friendships/destroy/%s.json' % (id.key().name()[3:])
         result = urlfetch.fetch(
             url     = url,
             method  = urlfetch.POST,
             headers = self.auth_header,
             )
         logging.debug(result.status_code)
         logging.debug(result.content)
         # 内部データの更新
         id.delete()
Beispiel #4
0
 def create(self):
     # フォローすべきidの抽出
     query = IDS.all()
     query.filter('follower =', True)
     query.filter('friend =',   False)
     ids = query.fetch(100)
     if len(ids) == 0:
         return
     # APIへの送信
     id = random.choice(ids)
     url = 'http://twitter.com/friendships/create/%s.json' % (id.key().name()[3:])
     result = urlfetch.fetch(
         url     = url,
         method  = urlfetch.POST,
         headers = self.auth_header,
         )
     logging.debug(result.status_code)
     logging.debug(result.content)
     if result.status_code == 200:
         # 内部データの更新
         id.friend = True
         id.put()
Beispiel #5
0
 def reset(self):
     db.delete(IDS.all())