Skip to content

Commit

Permalink
status: Fix issue in telegram report when thread is inactive
Browse files Browse the repository at this point in the history
  • Loading branch information
harshithpabbati committed Mar 16, 2020
1 parent 1ce9be2 commit 19fd085
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 16 deletions.
2 changes: 1 addition & 1 deletion members/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ def get_resume_path(self, filename):
interests = models.ManyToManyField(Skill, related_name='interests', blank=True)
expertise = models.ManyToManyField(Skill, related_name='expertise', blank=True)
experiences = models.ManyToManyField(Organization, related_name='WorkExperiences', through='WorkExperience')
didNotSendStreak = models.IntegerField(default=0)
didNotSendStreak = models.CharField(null=True, blank=True, max_length=10)
qualifications = models.ManyToManyField(
Organization,
related_name='EducationalQualifications',
Expand Down
28 changes: 13 additions & 15 deletions status/StatusUpdateReporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,9 @@ def groupMembersByBatch(members, year):
return UserProfile.objects.filter(user__in=members, batch=year)

@staticmethod
def getLastSendStr(last_send, expected_date):
def getLastSendStr(last_send):
message = ''
diff = expected_date - last_send.date()
diff = diff.days + 1
diff = last_send + 1
if diff > 28:
message += '1M+'
elif diff > 21:
Expand All @@ -77,9 +76,8 @@ def getLastSendStr(last_send, expected_date):
return message

@staticmethod
def getLastSend(last_send, expected_date):
diff = expected_date - last_send.date()
diff = diff.days + 1
def getLastSend(last_send):
diff = last_send + 1
return diff

def getMemberLastRequiredDate(self, member):
Expand Down Expand Up @@ -110,13 +108,12 @@ def generateBatchWiseDNSReport(self, members, year):
i = 0
for member in m:
i = i + 1
lastSend = self.getMemberLastSend(member.user)
message += str(i) + '. ' + self.getName(member.user)
profile = UserProfile.objects.get(user=member.user)
lastSend = profile.didNotSendStreak
if lastSend:
lastSend = self.getLastSendStr(lastSend,
self.getMemberLastRequiredDate(member.user))
profile = UserProfile.objects.get(user=member.user)
profile.didNotSendStreak = lastSend
profile.didNotSendStreak = self.getLastSend(int(lastSend))
lastSend = self.getLastSendStr(int(lastSend))
profile.save()
memberHistory = self.getMemberHistory(member.user)
message += ' [ ' + lastSend + ', ' + memberHistory + ']'
Expand Down Expand Up @@ -160,6 +157,9 @@ def getInvalidUpdatesReport(self, invalidUpdates):
i = 0
for member in invalidUpdates.all():
i = i + 1
profile = UserProfile.objects.get(user=member.user)
lastSend = profile.didNotSendStreak
profile.didNotSendStreak = self.getLastSend(int(lastSend))
message += str(i) + '. ' + self.getName(member) + '\n'
return message

Expand Down Expand Up @@ -221,13 +221,11 @@ def kickMembers(self):
bot = telegram.Bot(token=agent[0])
for member in members:
userProfile = UserProfile.objects.get(user=member)
lastSend = self.getMemberLastSend(member)
lastSend = userProfile.didNotSendStreak
if lastSend:
lastSend = self.getLastSend(lastSend,
self.getMemberLastRequiredDate(member))
try:
status = bot.getChatMember(chat_id=agent[1], user_id=userProfile.telegram_id).status
if lastSend > thread.noOfDays:
if int(lastSend) > thread.noOfDays:
kick = True
exceptions = StatusException.objects.filter(isPaused=True)
for exception in exceptions:
Expand Down
4 changes: 4 additions & 0 deletions status/logger.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import dateutil.parser
from django.contrib.auth.models import User
from status.models import Thread, Message, DailyLog
from members.models import Profile
from pytz import timezone
from django.core.exceptions import ObjectDoesNotExist

Expand All @@ -23,6 +24,9 @@ def log(data, members, thread_id):
message=entry['message']
)
msgObj.save()
profile = Profile.objects.get(user=user)
profile.didNotSendStreak = 0
profile.save()
if msgCreated:
obj, created = DailyLog.objects.get_or_create(
date=logDate,
Expand Down

0 comments on commit 19fd085

Please sign in to comment.