示例#1
0
async def await_cmd(message: types.message):
    check_id(message.from_user)
    await message.chat.do(types.ChatActions.TYPING)
    with Session as session:
        user = session.query(User).filter_by(id=message.from_user.id).first()
        logger.info(f"{message.from_user.username} do edt awaited command")
        url = str()
        if message.photo:
            file_path = await bot.get_file(message.photo[0].file_id)
            file_url = f"https://api.telegram.org/file/bot{API_TOKEN}/{file_path['file_path']}"
            qr = decode(Image.open(requests.get(file_url, stream=True).raw))
            if qr:
                url = str(qr[0].data)
        elif message.text:
            msg_url = re_url.findall(message.text)
            if msg_url:
                url = msg_url[0]

        if url:
            resources = url[url.find("resources") + 10:][:4]
        elif message.text:
            resources = message.text

        try:
            string_to_container(requests.get(Calendar("", int(resources)).url).text)

        except (ParseError, ConnectionError, InvalidSchema, MissingSchema, ValueError, UnboundLocalError):
            msg = lang(user, "setedt_err_res")
        else:
            user.resources = int(resources)
            msg = lang(user, "setedt")
        user.await_cmd = str()
        session.commit()
    await message.reply(msg, parse_mode=ParseMode.MARKDOWN, reply_markup=key)
示例#2
0
 def test_gehol(self):
     # convert ics to utf8: recode l9..utf8 *.ics
     cal = os.path.join(os.path.dirname(__file__), "gehol", "BA1.ics")
     with open(cal) as ics:
         ics = ics.read()
         ics = string_to_container(ics)[0]
         self.assertTrue(ics)
示例#3
0
 def test_gehol(self):
     # convert ics to utf8: recode l9..utf8 *.ics
     cal = os.path.join(os.path.dirname(__file__), "gehol", "BA1.ics")
     with open(cal) as ics:
         ics = ics.read()
         ics = string_to_container(ics)[0]
         self.assertTrue(ics)
示例#4
0
    def test_parse(self):
        content = string_to_container(cal5)
        self.assertEqual(1, len(content))

        cal = content.pop()
        self.assertEqual('VCALENDAR', cal.name)
        self.assertTrue(isinstance(cal, Container))
        self.assertEqual('VERSION', cal[0].name)
        self.assertEqual('2.0', cal[0].value)
        self.assertEqual(cal5.strip(), str(cal).strip())
示例#5
0
文件: parse.py 项目: zuphilip/ics.py
    def test_parse(self):
        content = string_to_container(cal5)
        self.assertEqual(1, len(content))

        cal = content.pop()
        self.assertEqual('VCALENDAR', cal.name)
        self.assertTrue(isinstance(cal, Container))
        self.assertEqual('VERSION', cal[0].name)
        self.assertEqual('2.0', cal[0].value)
        self.assertEqual(cal5.strip().splitlines(), str(cal).strip().splitlines())
示例#6
0
文件: parse.py 项目: jammon/ics.py
    def test_parse(self):
        content = string_to_container(empty_calendar_with_version)
        self.assertEqual(1, len(content))

        cal = content.pop()
        self.assertEqual('VCALENDAR', cal.name)
        self.assertTrue(isinstance(cal, Container))
        self.assertEqual('VERSION', cal[0].name)
        self.assertEqual('2.0', cal[0].value)
        self.assertEqual(empty_calendar_with_version.strip().splitlines(),
                         str(cal).strip().splitlines())
示例#7
0
 def test_many_lines(self):
     i = 0
     for line in string_to_container(cal1)[0]:
         self.assertNotEqual('', line.name)
         if isinstance(line, ContentLine):
             self.assertNotEqual('', line.value)
         if line.name == 'DESCRIPTION':
             self.assertEqual('Lorem ipsum dolor sit amet, \
                 consectetur adipiscing elit. \
                 Sed vitae facilisis enim. \
                 Morbi blandit et lectus venenatis tristique. \
                 Donec sit amet egestas lacus. \
                 Donec ullamcorper, mi vitae congue dictum, \
                 quam dolor luctus augue, id cursus purus justo vel lorem. \
                 Ut feugiat enim ipsum, quis porta nibh ultricies congue. \
                 Pellentesque nisl mi, molestie id sem vel, \
                 vehicula nullam.', line.value)
         i += 1
示例#8
0
文件: parse.py 项目: zuphilip/ics.py
 def test_many_lines(self):
     i = 0
     for line in string_to_container(cal1)[0]:
         self.assertNotEqual('', line.name)
         if isinstance(line, ContentLine):
             self.assertNotEqual('', line.value)
         if line.name == 'DESCRIPTION':
             self.assertEqual('Lorem ipsum dolor sit amet, \
                 consectetur adipiscing elit. \
                 Sed vitae facilisis enim. \
                 Morbi blandit et lectus venenatis tristique. \
                 Donec sit amet egestas lacus. \
                 Donec ullamcorper, mi vitae congue dictum, \
                 quam dolor luctus augue, id cursus purus justo vel lorem. \
                 Ut feugiat enim ipsum, quis porta nibh ultricies congue. \
                 Pellentesque nisl mi, molestie id sem vel, \
                 vehicula nullam.', line.value)
         i += 1
示例#9
0
文件: utils.py 项目: jammon/ics.py
 def test_without_x(self):
     c = string_to_container(calendar_without_prodid)[0]
     c2 = string_to_container(calendar_without_prodid)[0]
     remove_x(c)
     self.assertSequenceEqual(c, c2)
示例#10
0
文件: utils.py 项目: jammon/ics.py
 def test_with_x(self):
     c = string_to_container(cal1)[0]
     remove_x(c)
     for line in c:
         self.assertFalse(line.name.startswith('X-'))
示例#11
0
 def test_without_x(self):
     c = string_to_container(cal2)[0]
     c2 = string_to_container(cal2)[0]
     remove_x(c)
     self.assertSequenceEqual(c, c2)
示例#12
0
 def test_with_x(self):
     c = string_to_container(cal1)[0]
     remove_x(c)
     for line in c:
         self.assertFalse(line.name.startswith('X-'))