def get_friends_list(self, user): twitterApi = Twitter.getInstance() friends_list = [] l = [] # Very bad hack. Need to move all these to model.validate try: # Twitter API doesn't allow to get all friends infor at once. # Instead you can only get all friends Ids and the use UserLookup # to get full user infor but only in batches of 100 user at once follow_list = twitterApi.api.GetFriendIDs(user.twitter)["ids"] while len(follow_list) > 100: l = l + twitterApi.api.UsersLookup(follow_list[0:100]) follow_list = follow_list[100:len(follow_list)] l = l + twitterApi.api.UsersLookup(follow_list[0:len(follow_list)]) for friend in l: friend_in_db = User.all().filter("twitter =", friend.screen_name) if friend_in_db.count() == 1: friends_list.append(friend.screen_name) except TwitterError: friends_list = ['not_authorized'] return friends_list
def get(self): self.twitter = Twitter.getInstance() current_time = int(time.time()) # Is there a user to process in next SCHEDULERUN seconds? next_planned_interval = current_time + SCHEDULERUN for user in User.all().filter("account_status =","enabled").filter("next_run_time <=", next_planned_interval): next_run_time = current_time + self.getNextRunInterval(user.messages_per_day) user.next_run_time = next_run_time user.put() message = self.postMessage(user)
def validate(self): twitter = Twitter.getInstance() try: # This has a limit of 5000 users at a time followers = twitter.api.GetFollowerIDs()["ids"] logging.debug(followers) new_user = twitter.api.GetUser(self.twitter_name) except: return False self.code_not_received = True if new_user.id in followers: self.code_not_received = False self.twitter_name_empty = (self.twitter_name == "") self.password_empty = (self.password == "") self.passwords_dont_match = (self.password != self.confirm_password) return self.is_valid()
def post(self): twitter = Twitter.getInstance() model = model_from_request(self.request, RegisterModel) # validate data; on error, redisplay form with error messages if not model.validate(): self.view(model) return # save new user user = User() user.username = model.twitter_name user.twitter = model.twitter_name user.email = "" pwd_hash = hashlib.md5() pwd_hash.update(model.password) user.password = pwd_hash.hexdigest() user.timezone = "" user.next_run_time = 0 user.message_type = "reply" user.account_status = "enabled" user.repeat_times = 6 user.followed_by = "" user.i_follow = "" user.messages_per_day = 10 user.default_source_lang = "en" user.follow_lang_list = "en" user.total_points = 0 user.put() try: twitter.api.CreateFriendship(model.twitter_name) except: pass # put him into session set_current_user(user) # redirect to the home page self.redirect("/profile")
def __init__(self): self.twitter = Twitter.getInstance() super(SendMessagesScheduler, self).__init__()
def __init__(self): self.twitter = Twitter.getInstance() super(BuildDailyListScheduler, self).__init__()
def __init__(self): self.twitter = Twitter.getInstance() super(CheckIncoming, self).__init__()