Esempio n. 1
0
def parse_student(string: str):
    if string is not None:
        if string[:4] == 'None':
            if check_student_name(string[4:]):
                return Student(str(string[4:]), None)
        elif len(string) >= 8:
            if check_student_name(string[8:]):
                return Student(string[8:], int(string[:8], 16))
    return None
 def load_file(self, saver):
     self.students = []
     for student_dict in saver.load(self.get_queue_save_file()):
         self.students.append(Student(
             name=student_dict['name'],
             telegram_id=student_dict['id'],
         ))
     state = saver.load(self.get_state_save_file())
     self.queue_pos = state['_queue_pos']
Esempio n. 3
0
    def get_registered_students(self, names: list):
        students = []
        for name in names:
            student = self.get_user_by_name(name)
            if student is None:
                student = self.find_similar_student(name)
            elif student is None:
                student = Student(name, 0)
            students.append(student)

        return students
Esempio n. 4
0
 def load_file(self, loader: ObjectSaver):
     loaded_values = loader.load(self._file_registered_users)
     if loaded_values is not None:
         self.students_reg = []
         for student_dict in loaded_values:
             self.students_reg.append(
                 Student(
                     student_dict['name'],
                     student_dict['id'],
                     AccessLevel(student_dict['access']),
                 ))
Esempio n. 5
0
def parse_users(string: str):
    if '\n' in string:
        new_users_str_lines = string.split('\n')
    else:
        new_users_str_lines = [string]

    err_list = []
    new_users = []

    for line in new_users_str_lines:
        try:
            user_temp = line.split('-')
            new_users.append(Student(user_temp[0], int(user_temp[1])))
        except ValueError:
            err_list.append(line)

    return new_users, err_list
Esempio n. 6
0
 def get_user_by_update(self, update):
     student = self.get_user_by_id(update.effective_user.id)
     if student is None:
         return Student(update.effective_user.full_name, None)
     return student
Esempio n. 7
0
 def append_new_user(self, name, telegram_id):
     new_student = Student(name, telegram_id)
     self.students_reg.append(new_student)
     return new_student
Esempio n. 8
0
 def find_similar_student(self, name: str):
     for student in self.students_reg:
         if StudentsRegisteredManager.is_similar(name, student.name):
             return student
     return Student(name, None)
Esempio n. 9
0
    def test_students_equality(self):
        s1 = Student('name1', 1)
        s2 = Student('name2', 1)
        self.assertTrue(s1 == s2)

        s1 = Student('name1', None)
        s2 = Student('name1', None)
        self.assertTrue(s1 == s2)

        s1 = Student('name1', None)
        s2 = Student('name2', None)
        self.assertFalse(s1 == s2)

        s1 = Student('name1', 1)
        s2 = Student('name1', None)
        self.assertFalse(s1 == s2)

        s1 = Student('name1', 1)
        s2 = Student('name1', 3)
        self.assertFalse(s1 == s2)

        s1 = Student('name1', 1)
        s2 = Student('name2', 3)
        self.assertFalse(s1 == s2)
Esempio n. 10
0
from queue_bot.registered_manager import StudentsRegisteredManager
from queue_bot.student import Student
from queue_bot.misc.object_file_saver import FolderType
from queue_bot.registered_manager import AccessLevel

os.chdir('../')

mode = 1

if mode == 1:
    source_file = FolderType.Data.value / StudentsRegisteredManager._file_registered_users
    registered_file = FolderType.Data.value / StudentsRegisteredManager._file_registered_users

    with source_file.open('rb') as fin:
        print('registered')
        students = [Student(name, tel_id) for tel_id, name in pickle.load(fin).items()]
        print(students)

    with registered_file.open('wb') as fout:
        pickle.dump(students, fout)

elif mode == 2:
    access_source_file = FolderType.Data.value / StudentsRegisteredManager._file_access_levels
    access_levels_path = FolderType.Data.value / StudentsRegisteredManager._file_access_levels

    with access_levels_path.open('rb') as fin:
        access = pickle.load(fin)

    print('access')
    print(access)