Beispiel #1
0
    def get(self):
        form = CalculatorForm(self.request.arguments)
        message = None

        convert_direction = self.get_argument('convert', None)

        if convert_direction and form.validate():
            try:
                if convert_direction == 'up':
                    source_number = self.get_argument('number_2')
                    source_alphabet = self.get_argument('alphabet_2')
                    target_alphabet = self.get_argument('alphabet_1')

                    num = str_to_int(source_number, source_alphabet)

                    form.number_1.data = int_to_str(num, target_alphabet)
                else:
                    source_number = self.get_argument('number_1')
                    source_alphabet = self.get_argument('alphabet_1')
                    target_alphabet = self.get_argument('alphabet_2')

                    num = str_to_int(source_number, source_alphabet)

                    form.number_2.data = int_to_str(num, target_alphabet)
            except ValueError as error:
                message = str(error)

        self.render('calculator.html', form=form, message=message)
Beispiel #2
0
    def get(self):
        form = CalculatorForm(self.request.arguments)
        message = None

        convert_direction = self.get_argument('convert', None)

        if convert_direction and form.validate():
            try:
                if convert_direction == 'up':
                    source_number = self.get_argument('number_2')
                    source_alphabet = self.get_argument('alphabet_2')
                    target_alphabet = self.get_argument('alphabet_1')

                    num = str_to_int(source_number, source_alphabet)

                    form.number_1.data = int_to_str(num, target_alphabet)
                else:
                    source_number = self.get_argument('number_1')
                    source_alphabet = self.get_argument('alphabet_1')
                    target_alphabet = self.get_argument('alphabet_2')

                    num = str_to_int(source_number, source_alphabet)

                    form.number_2.data = int_to_str(num, target_alphabet)
            except ValueError as error:
                message = str(error)

        self.render('calculator.html', form=form, message=message)
Beispiel #3
0
 def test_str_to_int(self):
     self.assertEqual(0, str_to_int('a', 'abcde'))
     self.assertEqual(123123, str_to_int('1E0F3', '0123456789ABCDEF'))
     self.assertEqual(
         123123,
         str_to_int(
             'w1R',
             '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
         ))
Beispiel #4
0
    def get_results(cls, offset_id=0, limit=1000, project_id=None):
        with new_session() as session:
            if int(offset_id) == 0:
                offset_id = session.query(func.max(Result.id)).scalar() or 0
            rows = session.query(
                Result.id, Result.project_id, Result.shortcode,
                Result.url, Result.encoding, Result.datetime
                ) \
                .filter(Result.id <= int(offset_id))

            if project_id is not None and project_id != 'None':
                rows = rows.filter(Result.project_id == project_id)
                alphabet = Project.get_plain(project_id).alphabet
            else:
                alphabet = None

            rows = rows.order_by(Result.id.desc()).limit(int(limit))

            for row in rows:
                ans = {
                    'id': row[0],
                    'project_id': row[1],
                    'shortcode': row[2],
                    'url': row[3],
                    'encoding': row[4],
                    'datetime': row[5]
                }
                if alphabet:
                    ans['seq_num'] = str_to_int(row[2], alphabet)
                yield ans
Beispiel #5
0
    def get_results(cls, offset_id=0, limit=1000, project_id=None):
        with new_session() as session:
            if int(offset_id) == 0:
                offset_id = session.query(func.max(Result.id)).scalar() or 0
            rows = session.query(
                Result.id, Result.project_id, Result.shortcode,
                Result.url, Result.encoding, Result.datetime
                ) \
                .filter(Result.id <= int(offset_id))

            if project_id is not None and project_id != 'None':
                rows = rows.filter(Result.project_id == project_id)
                alphabet = Project.get_plain(project_id).alphabet
            else:
                alphabet = None

            rows = rows.order_by(Result.id.desc()).limit(int(limit))

            for row in rows:
                ans = {
                    'id': row[0],
                    'project_id': row[1],
                    'shortcode': row[2],
                    'url': row[3],
                    'encoding': row[4],
                    'datetime': row[5]
                }
                if alphabet:
                    ans['seq_num'] = str_to_int(row[2], alphabet)
                yield ans
 def test_str_to_int(self):
     self.assertEqual(0, str_to_int('a', 'abcde'))
     self.assertEqual(123123, str_to_int('1E0F3', '0123456789ABCDEF'))
     self.assertEqual(123123, str_to_int('w1R', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'))