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
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
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