Added first files

This commit is contained in:
Antonio de la Rosa 2025-11-14 19:41:18 +01:00
commit d325960160
12 changed files with 510 additions and 0 deletions

133
app.py Normal file
View file

@ -0,0 +1,133 @@
#!/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/<int:page_id>/')
@pages2_app.route('/page/<path:slug>/')
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('<p>'+jtext['data']['text']+'</p>')
match jtext['type']:
case 'paragraph':
arr_final_text.append('<p>'+jtext['data']['text']+'</p>')
case 'image':
arr_final_text.append('<p align="center"><img src="{}" style="width:50%;" title="{}" /><br /><strong>{}</strong></p>'.format(jtext['data']['file']['url'], jtext['data']['caption'], jtext['data']['caption']))
"""
return t.load_template('page.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)