def update_config(cls): info = load_yaml(CONFIG_PATH) if info is None: cls.query.first().delete() else: params = { 'md_toc_marker': info['markdown']['toc_marker'], 'note_title': info['note']['title'], 'note_subtitle': info['note']['subtitle'], 'note_description': info['note']['description'], 'theme': info['app']['theme'], 'post_per_page': info['app']['post_per_page'], 'ga_tracking_id': info['app']['ga_tracking_id'], 'url': info['app']['url'], 'timezone': info['app']['timezone'], 'aes_key': info['aes_key'], } config = cls.query.first() if config is None: config = Config(**params) db.session.add(config) else: for k, v in params.items(): setattr(config, k, v) db.session.commit()
def insert_entries(data, verbose=False): '''Role.insert_entries(data, verbose=False)''' yaml_file = os.path.join(current_app.config['DATA_DIR'], data, 'roles.yml') entries = load_yaml(yaml_file=yaml_file) if entries is not None: print('---> Read: {}'.format(yaml_file)) for entry in entries: role = Role( name=entry['name'], category=entry['category'], icon=entry['icon'], level=entry['level'] ) db.session.add(role) db.session.commit() if verbose: print('导入用户角色信息', entry['name'], entry['category']) for permission in entry['permissions']: role_permission = RolePermission( role_id=role.id, permission_id=Permission.query.filter_by(name=permission).first().id ) db.session.add(role_permission) if verbose: print('赋予权限', entry['name'], permission) db.session.commit() else: print('文件不存在', yaml_file)
def insert_entries(data, verbose=False): '''Video.insert_entries(data, verbose=False)''' yaml_file = os.path.join(current_app.config['DATA_DIR'], data, 'videos.yml') entries = load_yaml(yaml_file=yaml_file) if entries is not None: print('---> Read: {}'.format(yaml_file)) makedirs(path=current_app.config['HLS_DIR'], overwrite=True) for entry in entries: video_file = os.path.join(current_app.config['VIDEO_DIR'], entry['file_name']) if os.path.exists(video_file): hls_cache_file_name = '{}.mp4'.format(token_urlsafe(16)) copyfile(video_file, os.path.join(current_app.config['HLS_DIR'], hls_cache_file_name)) video = Video( name='{} {}'.format(entry['lesson_name'], entry['abbr']), abbr=entry['abbr'], description=entry['description'], lesson_id=Lesson.query.filter_by(name=entry['lesson_name']).first().id, duration=get_video_duration(video_file), file_name=entry['file_name'], hls_cache_file_name=hls_cache_file_name ) db.session.add(video) if verbose: print('导入视频信息', entry['lesson_name'], entry['abbr'], entry['file_name']) else: print('视频文件不存在', entry['lesson_name'], entry['abbr'], entry['file_name']) db.session.commit() else: print('文件不存在', yaml_file)
def vb_reading_list(): '''resource.vb_reading_list()''' datafile = os.path.join(current_app.config['RESOURCE_DIR'], 'vb', 'reading_list.yml') reading_list = load_yaml(datafile=datafile) if reading_list is None: abort(404) return minify(render_template( 'resource/vb/reading_list.html', reading_list=reading_list ))
def vb_glossary(id): '''resource.vb_glossary(id)''' header = 'VB L{} 单词补遗'.format(id) datafile = os.path.join(current_app.config['RESOURCE_DIR'], 'vb', 'glossaries', '{}.yml'.format(id)) glossary = load_yaml(datafile=datafile) if glossary is None: abort(404) return minify(render_template( 'resource/vb/glossary.html', header=header, glossary=glossary ))
def vb_tutorial_draft(id): '''resource.vb_tutorial_draft(id)''' header = 'VB L{} 视频研修补充材料(草稿)'.format(id) datafile = os.path.join(current_app.config['RESOURCE_DIR'], 'vb', 'tutorials', '{}.draft.yml'.format(id)) tutorial = load_yaml(datafile=datafile) if tutorial is None: abort(404) return minify(render_template( 'resource/vb/tutorial.html', header=header, tutorial=tutorial ))
def update_user(cls): info = load_yaml(USER_PATH) if info is None: cls.query.first().delete() else: user = cls.query.first() if user is None: user = User(info['email'], info['password'], info['name']) db.session.add(user) else: for k, v in info.items(): setattr(user, k, v) db.session.commit()
def insert_entries(data, verbose=False): '''Room.insert_entries(data, verbose=False)''' yaml_file = os.path.join(current_app.config['DATA_DIR'], data, 'rooms.yml') entries = load_yaml(yaml_file=yaml_file) if entries is not None: print('---> Read: {}'.format(yaml_file)) for entry in entries: room = Room(name=entry['name']) db.session.add(room) if verbose: print('导入房间信息', entry['name']) db.session.commit() else: print('文件不存在', yaml_file)
def insert_entries(data, verbose=False): '''DeviceType.insert_entries(data, verbose=False)''' yaml_file = os.path.join(current_app.config['DATA_DIR'], data, 'device_types.yml') entries = load_yaml(yaml_file=yaml_file) if entries is not None: print('---> Read: {}'.format(yaml_file)) for entry in entries: device_type = DeviceType( name=entry['name'], icon=entry['icon'] ) db.session.add(device_type) if verbose: print('导入设备类型信息', entry['name'], entry['icon']) db.session.commit() else: print('文件不存在', yaml_file)
def insert_entries(data, verbose=False): '''Permission.insert_entries(data, verbose=False)''' yaml_file = os.path.join(current_app.config['DATA_DIR'], data, 'permissions.yml') entries = load_yaml(yaml_file=yaml_file) if entries is not None: print('---> Read: {}'.format(yaml_file)) for entry in entries: permission = Permission( name=entry['name'], category=entry['category'] ) db.session.add(permission) if verbose: print('导入用户权限信息', entry['name'], entry['category']) db.session.commit() else: print('文件不存在', yaml_file)
def insert_entries(data, verbose=False): '''Lesson.insert_entries(data, verbose=False)''' yaml_file = os.path.join(current_app.config['DATA_DIR'], data, 'lessons.yml') entries = load_yaml(yaml_file=yaml_file) if entries is not None: print('---> Read: {}'.format(yaml_file)) for entry in entries: lesson = Lesson( name='{} {}'.format(entry['lesson_type_name'], entry['abbr']), abbr=entry['abbr'], type_id=LessonType.query.filter_by(name=entry['lesson_type_name']).first().id, progress_threshold=entry['progress_threshold'] ) db.session.add(lesson) if verbose: print('导入课程信息', entry['lesson_type_name'], entry['abbr']) db.session.commit() else: print('文件不存在', yaml_file)
def insert_entries(data, verbose=False): '''LessonType.insert_entries(data, verbose=False)''' yaml_file = os.path.join(current_app.config['DATA_DIR'], data, 'lesson_types.yml') entries = load_yaml(yaml_file=yaml_file) if entries is not None: print('---> Read: {}'.format(yaml_file)) for entry in entries: lesson_type = LessonType( name=entry['name'], color=entry['color'], view_point=entry['view_point'], login_required=entry['login_required'] ) db.session.add(lesson_type) if verbose: print('导入课程类型信息', entry['name'], entry['color'], entry['view_point']) db.session.commit() else: print('文件不存在', yaml_file)