Ejemplo n.º 1
0
    def get_notifications(self, old_stars, old_watchers, old_forks):
        new_stars, new_watchers, new_forks = self.stars, self.watchers, self.forks

        delta_stars = new_stars - old_stars
        delta_watchers = new_watchers - old_watchers
        delta_forks = new_forks - old_forks

        notifications = []
        if delta_stars != 0:
            context = 'starr'
            if delta_stars < 0:
                context = 'un' + context # not a typo

            notifications.append(Notification.generate_message('{} users'.format(delta_stars), context, self.name))

        if delta_watchers != 0:
            context = 'watch'
            if delta_watchers < 0:
                context = 'un' + context

            notifications.append(Notification.generate_message('{} users'.format(delta_watchers), context, self.name))

        if delta_forks != 0:
            context = 'fork'
            if delta_forks < 0:
                context = 'un' + context

            notifications.append(Notification.generate_message('{} users'.format(delta_watchers), context, self.name))

        return notifications
Ejemplo n.º 2
0
    def get_notifications(self, old_count):
        # changes in followers
        # notification
        new_count = self.followers
        notifications = []

        if old_count != new_count:
            if self.username == USERNAME:
                notification_url = URL + '/user/followers'
                target = 'you'

            else:
                notification_url = URL + '/users/' + self.username + '/followers'
                target = self.username

            if new_count > old_count:
                params = {'per_page': self.followers}
                start_page = old_count // 100
                end_page = new_count // 100
                followers = []
                with requests.Session() as s:
                    for i in range(start_page + 1, end_page + 2):
                        params['page'] = i
                        new_page = s.get(notification_url,
                                         headers=HEADERS,
                                         params=params,
                                         auth=(USERNAME, PASSWORD)).json()
                        #print("Length of page {} : {}".format(i, len(new_page)))
                        followers += new_page

                start_index = old_count % 100
                context = "follow"
                #print("Len of followers:" + str(len(followers)))
                #print("Len of list:" + str(len(followers[start_index:])))
                for user_blob in followers[start_index:]:
                    protagonist = user_blob['login']
                    notifications += [
                        Notification.generate_message(protagonist, context,
                                                      target)
                    ]

            else:
                message = '{} users unfollowed {}'.format(
                    old_count - new_count, target)
                notifications += [Notification(message)]

        return notifications
Ejemplo n.º 3
0
    def get_notifications(self, old_count):
        # changes in followers
        # notification
        new_count = self.followers
        notifications = []

        if old_count != new_count:
            if self.username == USERNAME:
                notification_url = URL + '/user/followers'
                target = 'you'

            else:
                notification_url = URL + '/users/' + self.username + '/followers'
                target = self.username

            if new_count > old_count:
                params = {'per_page': self.followers}
                start_page = old_count // 100
                end_page = new_count // 100
                followers = []
                with requests.Session() as s:
                    for i in range(start_page + 1, end_page + 2):
                        params['page'] = i
                        new_page = s.get(notification_url, headers=HEADERS,
                                         params=params, auth=(USERNAME, PASSWORD)).json()
                        #print("Length of page {} : {}".format(i, len(new_page)))
                        followers += new_page

                start_index = old_count % 100
                context = "follow"
                #print("Len of followers:" + str(len(followers)))
                #print("Len of list:" + str(len(followers[start_index:])))
                for user_blob in followers[start_index:]:
                    protagonist = user_blob['login']
                    notifications += [Notification.generate_message(protagonist, context, target)]

            else:
                message = '{} users unfollowed {}'.format(old_count - new_count, target)
                notifications += [Notification(message)]

        return notifications