コード例 #1
0
    def test_now_time_changes(self):
        offset = 3
        start = dh.get_end_time('')[0]

        time.sleep(offset)
        end = dh.get_end_time('')[0]

        self.assertAboutEqual(start,
                              end - offset,
                              'now time changes',
                              margin=1)
コード例 #2
0
    async def _request_wrap(self, ctx, role, date=''):
        auth = ctx.message.author
        chan = ctx.message.channel
        serv = ctx.message.guild

        # attempt to find the role if a string was given,
        #   if not found, stop
        if type(role) != discord.Role:
            role = dh.get_role(serv, role)
        if not role:
            await ctx.send(error("could not find role, ask a mod to create it")
                           )
            return

        # get list of public roles
        available_roles = self.conf.get(guild_id, {}).get('pub_roles', [])
        role_id = str(role.id)
        guild_id = str(serv.id)

        if role_id in available_roles:  # if role is a public role,
            await auth.add_roles(role)  #   give it
            await ctx.send(ok('you now have that role'))
        else:  # otherwise don't
            await ctx.send(
                error('I\'m afraid that I can\'t give you that role'))
            return

        if date:  # if a timeout was specified
            end_time = dh.get_end_time(date)[0]
            role_end = RoleRemove(end_time, role_id, str(auth.id),
                                  str(chan.id), guild_id)

            await self.bot.get_cog('HeapCog').push(role_end, self.bot)
コード例 #3
0
 def test_offset_monthB(self):
     result = dh.get_end_time('in 7 months message')
     date_time = arrow.now().shift(months=7)
     ts = date_time.timestamp
     message = "offset +7 months (in)"
     self.assertAboutEqual(result[0], ts, message + ' - timestamp')
     self.assertEqual(result[1], 'message', message + ' - message')
     self.assertItemsEqual(result[2], ['7 months'], message + ' - match')
コード例 #4
0
 def test_offset_w(self):
     result = dh.get_end_time('me 1 week message')
     date_time = arrow.now().shift(days=7)
     ts = date_time.timestamp
     message = "offset +1 week"
     self.assertAboutEqual(result[0], ts, message + ' - timestamp')
     self.assertEqual(result[1], 'message', message + ' - message')
     self.assertItemsEqual(result[2], ['1 week'], message + ' - match')
コード例 #5
0
 def test_offset_h(self):
     result = dh.get_end_time('me in 5 h message')
     date_time = arrow.now().shift(hours=5)
     ts = date_time.timestamp
     message = "offset +5h"
     self.assertAboutEqual(result[0], ts, message + ' - timestamp')
     self.assertEqual(result[1], 'message', message + ' - message')
     self.assertItemsEqual(result[2], ['5 h'], message + ' - match')
コード例 #6
0
 def test_time_hm(self):
     result = dh.get_end_time('at 7:11 message')
     message = "time hour:min"
     dt = arrow.get(result[0]).to(arrow.now().tzinfo)
     self.assertEqual(dt.hour, 7, message + ' - hour')
     self.assertEqual(dt.minute, 11, message + ' - minute')
     self.assertEqual(result[1], 'message', message + ' - message')
     self.assertItemsEqual(result[2], ['7:11'], message + ' - match')
コード例 #7
0
 def test_dateA(self):
     result = dh.get_end_time('me at 2017-10-23 message')
     date_time = arrow.now().replace(
         year=2017,
         month=10,
         day=23,
     )
     ts = date_time.timestamp
     message = "date (2017-10-23)"
     self.assertAboutEqual(result[0], ts, message + ' - timestamp')
     self.assertEqual(result[1], 'message', message + ' - message')
     self.assertItemsEqual(result[2], ['2017-10-23'], message + ' - match')
コード例 #8
0
 def test_weekday_hour_after_dow_hm(self):
     start = arrow.get('2018-05-04 9:00', 'YYYY-M-D H:mm')
     start = start.replace(tzinfo=arrow.now().tzinfo)
     result = dh.get_end_time('on friday 8:00 message', start)
     message = "dow hour:min - hour after"
     dt = arrow.get(result[0]).to(arrow.now().tzinfo)
     self.assertEqual(dt.weekday(), 4, message + ' - weekday')
     self.assertEqual(dt.day, 11, message + ' - day of month')
     self.assertEqual(dt.hour, 8, message + ' - hour')
     self.assertEqual(dt.minute, 0, message + ' - minute')
     self.assertEqual(result[1], 'message', message + ' - message')
     self.assertItemsEqual(result[2], ['friday', '8:00'],
                           message + ' - match')
コード例 #9
0
 def test_weekday_sec_after_dow_hm_with_param(self):
     start = arrow.get('2018-05-04 8:00:01', 'YYYY-M-D H:mm:ss')
     start = start.replace(tzinfo=arrow.now().tzinfo)
     result = dh.get_end_time('me on friday at 8:00:00 -r read:', start)
     message = "dow hour:min - sec after with param"
     dt = arrow.get(result[0]).to(arrow.now().tzinfo)
     self.assertEqual(dt.weekday(), 4, message + ' - weekday')
     self.assertEqual(dt.day, 11, message + ' - day of month')
     self.assertEqual(dt.hour, 8, message + ' - hour')
     self.assertEqual(dt.minute, 0, message + ' - minute')
     self.assertEqual(result[1], '-r read:', message + ' - message')
     self.assertItemsEqual(result[2], ['friday', '8:00:00'],
                           message + ' - match')
コード例 #10
0
 def test_timestampA(self):
     result = dh.get_end_time('me at 2017-10-23T05:11:56 message')
     date_time = arrow.now().replace(
         year=2017,
         month=10,
         day=23,
         hour=5,
         minute=11,
         second=56,
     )
     ts = date_time.timestamp
     match = ['2017-10-23', 'T05:11:56']
     message = "timestamp (2017-10-23T05:11:56)"
     self.assertAboutEqual(result[0], ts, message + ' - timestamp')
     self.assertEqual(result[1], 'message', message + ' - message')
     self.assertItemsEqual(result[2], match, message + ' - match')
コード例 #11
0
 def test_timestampC(self):
     result = dh.get_end_time('at 10/23/2017 5:11 PM message')
     date_time = arrow.now().replace(
         year=2017,
         month=10,
         day=23,
         hour=17,
         minute=11,
         second=0,
     )
     ts = date_time.timestamp
     match = ['10/23/2017', '5:11 PM']
     message = "timestamp (10/23/2017 5:11 PM)"
     self.assertAboutEqual(result[0], ts, message + ' - timestamp')
     self.assertEqual(result[1], 'message', message + ' - message')
     self.assertItemsEqual(result[2], match, message + ' - match')
コード例 #12
0
  def parse_time(self):
    times = ' '.join(self.times)
    self.end_time,message,times = dh.get_end_time(times or self.message)
    self.message = message or self.message

    while True:
      first = self.message.split()[0]
      if first[0] == '-':
        for opt in first[1:]:
          if opt in 'c':
            self.command = True
          elif opt in 'r':
            self.times = times
      else:
        break
      self.message = self.message.replace(first, '', 1).strip()