#!/usr/bin/env python3 #from paramecio.wsgiapp import app from paramecio2.libraries.mtemplates import PTemplate, env_theme from modules.pages2.models.pages import Page2 from paramecio2.libraries.db.webmodel import WebModel from settings import config #from bottle import abort from flask import abort, request from modules.pages2 import pages2_app from paramecio2.libraries.db.coreforms import BaseForm from paramecio2.libraries.mtemplates import env_theme, PTemplate from paramecio2.libraries.urls import make_media_url import os from werkzeug.utils import secure_filename import pathlib try: import ujson as json except: import json env=env_theme(__file__) t=PTemplate(env) pages_modules_to_search=[] if hasattr(config, 'pages_modules_to_search'): pages_modules_to_search=config.pages_modules_to_search for mod in pages_modules_to_search: t.env.directories.insert(0, mod.replace('.', '/')+'/templates') @pages2_app.route('/page//') @pages2_app.route('/page//') def pages2_home(page_id=0, slug=''): conn=WebModel.connection() page=Page2(conn) page.show_formatted=True if page_id: page.set_conditions('WHERE id=%s', [page_id]) if slug: page.set_conditions('WHERE slugify=%s', [slug]) arr_page=page.select_a_row_where() conn.close() if arr_page: arr_final_text=[] arr_text=json.loads(arr_page['text']) #print(arr_text) """ for jtext in arr_text['blocks']: #{'id': 'Vp0iLVnqq4', 'type': 'image', 'data': {'caption': 'Hi my friends', 'withBorder': False, 'withBackground': False, 'stretched': False, 'file': {'url': '/mediafrom/pages2/images/editor/33abad83-a37b-4d74-b83d-ba7283f0f952.jpg'}}} #if jtext['type']=='paragraph': # arr_final_text.append('

'+jtext['data']['text']+'

') match jtext['type']: case 'paragraph': arr_final_text.append('

'+jtext['data']['text']+'

') case 'image': arr_final_text.append('


{}

'.format(jtext['data']['file']['url'], jtext['data']['caption'], jtext['data']['caption'])) """ return t.load_template('page2.phtml', title_page=arr_page['title'], content_page=arr_text) else: abort(404) @pages2_app.route('/pages/upload_image/', methods=['POST']) def pages2_upload_image(): """ { "success" : 1, "file": { "url" : "https://www.tesla.com/tesla_theme/assets/img/_vehicle_redesign/roadster_and_semi/roadster/hero.jpg", // ... and any additional fields you want to store, such as width, height, color, extension, etc } } """ #print(request.files.keys()) success=0 new_url='' if 'image' in request.files: file=request.files['image'] images_dir='./modules/pages2/media/images/editor' if not os.path.isdir(images_dir): #os.mkdir(images_dir) pathlib.Path(images_dir).mkdir(0o755, True) filename=secure_filename(file.filename) file.save(os.path.join(images_dir, filename)) success=1 new_url=make_media_url('images/editor/'+filename, 'pages2') print({'success': success, 'file': {'url': new_url}}) return {'success': success, 'file': {'url': new_url}} @pages2_app.route('/home/') def pages_home(): return "" if config.default_module=="pages2": home=pages2_app.route("/")(pages2_home)