Creating Post Template
#controllers/index.py
import config, copy, json
from flask import render_template, redirect, session, request
from flask_classful import FlaskView, route
from controllers.post import Post
class Index(FlaskView):
def __init__(self):
self.post = Post()
@route('/')
def index(self):
session['page'] = 0
vdict = self.post.get_post()
return render_template('index.html', data=vdict)
@route('/panel')
def get_post(self):
nav = request.args.get('nav', 0, type=str)
if nav == 'previous':
session['page'] += 1
elif nav == 'next':
if session['page'] > 0:
session['page'] -= 1
else:
session['page'] = 0
vdict = self.post.get_post(session['page'])
if not vdict['posts']:
session['page'] -= 1
return json.dumps(vdict)
@route('/favicon.ico')
def favicon(self):
redirect('/static/images/site_logo.png')
@route('/post/<id>')
def get_single_post(self, id):
vdict = self.post.get_single_post(id)
return render_template('post.html', data=vdict)
#controllers/post.py
import config, copy
from flask import render_template, redirect
from lib import Lib
from models.dashboard.postdb import Postdb
class Post():
def __init__(self):
self.postdb = Postdb()
self.lib = Lib()
def get_post(self, amount=5, category="", page=0):
vdict = copy.deepcopy(config.vdict)
vdict['posts'] = self.postdb.select(amount=amount, category=category, page=page)
vdict['thumbs'] = self.lib.get_thumbs(vdict['posts'], 3)
vdict['videos'] = self.lib.get_video_data(vdict['posts'], 7)
vdict['category'] = category
new_post_list = []
for post in vdict['posts']:
new_post = list(post)
new_post[4] = post[4].strftime('%d/%m/%Y')
new_post[5] = post[5].strftime('%H:%M:%S')
new_post_list.append(new_post)
vdict['posts'] = new_post_list
return vdict
def get_single_post(self, id):
vdict = copy.deepcopy(config.vdict)
vdict['post'] = self.postdb.select(1, id=id)
return vdict
//static/scripts/post.js
class Post{
setVideo(video){
var video = JSON.parse(video);
if(video.vidType === "youtube"){
var src = "https://www.youtube.com/embed/" + video.videoId;
}else if(video.vidType === "fbvid"){
var src = `https://www.facebook.com/watch/?v=${video.videoId}`;
}else if(video.vidType === "googledrive"){
var src = "https://docs.google.com/file/d/"+video.videoId+"/preview";
}else if(video.vidType === "dailymotion"){
var src = "https://www.dailymotion.com/embed/video/" + video.vidType;
}else if(video.vidType === "vimeo"){
var src = "https://player.vimeo.com/video/" + video.vidType;
}else if(video.vidType === "okvid"){
var src = "//ok.ru/videoembed/" + video.vidType;
}else if(video.vidType === "youtubepl"){
var src = "https://www.youtube.com/embed/videoseries?list=" + video.vidType;
}
if(video.vidType !== 'fbvid'){
var iframe = `<div style='position:relative;padding-top:56.25%;margin-top:20px;'>
<iframe id="video-player" src="${src}" frameborder="0" allowfullscreen></iframe>
</div>`;
}else{
var iframe = `<div class="fb-video" data-href="${src}" data-width="auto" data-show-captions="true"></div>`;
}
$('#video-wrapper').html(iframe);
}
}//End of class
const post = new Post();
GitHub: "https://github.com/Sokhavuth/E-Learning
Heroku: https://khmerweb-elearning.herokuapp.com/

Comments
Post a Comment