Example #1
0
    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
Example #2
0
 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)
Example #3
0
 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()
Example #4
0
    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")
Example #5
0
 def __init__(self):
     self.twitter = Twitter.getInstance()
     super(SendMessagesScheduler, self).__init__()
Example #6
0
 def __init__(self):
     self.twitter = Twitter.getInstance()
     super(BuildDailyListScheduler, self).__init__()
Example #7
0
 def __init__(self):
     self.twitter = Twitter.getInstance()
     super(CheckIncoming, self).__init__()