Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. from i3pystatus import IntervalModule
  2. import time
  3.  
  4. class VodaFone(IntervalModule):
  5. interval = 3600
  6. def __init__(self, *args, **kwargs):
  7. super().__init__(*args, **kwargs)
  8. try:
  9. import vodafone
  10. for _ in range(3):
  11. try:
  12. self.vf = vodafone.Vodafone("nr", "gergreger")
  13. self.vf.login()
  14. break
  15. except:
  16. pass
  17. else:
  18. self.vf = None
  19.  
  20. except ImportError:
  21. self.vf = None
  22.  
  23. def run(self):
  24. if self.vf is None:
  25. return
  26. try:
  27. quota = self.vf.get_quota()
  28. except:
  29. return
  30.  
  31. percent = (quota["totalConsumption"] / quota["totalBalance"]) * 100
  32. renewdate = time.mktime(time.strptime(quota["quotaDTO"][0]["renewalDate"], "%d-%b-%y"))
  33. remainingdays = int((renewdate - time.time()) / (3600 * 24))
  34. remainingpercent = 100 - (remainingdays / 30) * 100
  35. if remainingpercent < percent:
  36. color = "#FF0000"
  37. else:
  38. color = "#FFFFFF"
  39. self.data = self.vf.__dict__
  40. self.output = {"full_text": "{limit:.0f}% R{remaining}d ({remper:.2f}%)".format(limit=percent, remaining=remainingdays, remper=remainingpercent),
  41. 'color': color}
  42.  
  43. def refresh(self):
  44. self.run()
  45.  
  46.  
  47. class TelecomEgypt(IntervalModule):
  48. interval = 3600
  49. def __init__(self, *args, **kwargs):
  50. super().__init__(*args, **kwargs)
  51. self._te = None
  52.  
  53. @property
  54. def te(self):
  55. if self._te is None:
  56. import telecomegypt
  57. try:
  58. self._te = telecomegypt.TelecomEgypt('nr', 'fwfwe/gergerger=')
  59. self._te.login()
  60. except:
  61. pass
  62. return self._te
  63.  
  64. def run(self):
  65. if self.te is None:
  66. return
  67. try:
  68. data = self.te.get_data()
  69. except:
  70. return
  71.  
  72. mobiledata = data['body']['detailedLineUsageList'][0]
  73. percent = mobiledata['usagePercentage']
  74. remainingpercent = 100 - (mobiledata['remainingDaysForRenewal'] / 31) * 100
  75. if remainingpercent < percent:
  76. color = "#FF0000"
  77. else:
  78. color = "#FFFFFF"
  79. self.data = self.te.__dict__
  80. self.output = {"full_text": "{limit:.0f}% R:{remaining}d ({remper:.0f}%)".format(limit=percent, remaining=mobiledata['remainingDaysForRenewal'], remper=remainingpercent),
  81. 'color': color}
  82.  
  83. def refresh(self):
  84. self.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement