From aa9fe02910eaa54b8cf170713851b9111082abfe Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Mon, 12 May 2025 01:33:32 +0545 Subject: [PATCH 1/7] Adds: desktop icon for app --- build.js | 5 +++++ package.json | 2 +- .../ui/assets/images/presenton_short_filled.png | Bin 0 -> 12167 bytes 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 resources/ui/assets/images/presenton_short_filled.png diff --git a/build.js b/build.js index d2b2d8c9..334f6da5 100644 --- a/build.js +++ b/build.js @@ -13,6 +13,11 @@ const config = { ], linux: { target: ["AppImage"], + desktop: { + Name: "Presenton", + Icon: "resources/ui/assets/images/presenton_short_filled.png", + Categories: ["Utility"], + }, }, } diff --git a/package.json b/package.json index 78af642b..39931c13 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "presenton_open_source", + "name": "presenton", "main": "app_dist/main.js", "version": "0.0.0", "description": "Presenton Open Source", diff --git a/resources/ui/assets/images/presenton_short_filled.png b/resources/ui/assets/images/presenton_short_filled.png new file mode 100644 index 0000000000000000000000000000000000000000..1b76bc0bacd0077228aaf533dd9e1d52a538ec80 GIT binary patch literal 12167 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 literal 0 HcmV?d00001 From 1c414d31233b0fdb7cfeae6afd4ef1aa7bcf56d8 Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Mon, 12 May 2025 02:05:58 +0545 Subject: [PATCH 2/7] Adds: icon for browser window and electron build --- app/main.ts | 5 +++-- build.js | 6 +----- package.json | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/app/main.ts b/app/main.ts index ff5505b3..62eceb58 100644 --- a/app/main.ts +++ b/app/main.ts @@ -13,12 +13,13 @@ var nextjsProcess: ChildProcessByStdio | undefined; const createWindow = () => { win = new BrowserWindow({ + width: 1280, + height: 720, + icon: path.join(baseDir, "resources/ui/assets/images/presenton_short_filled.png"), webPreferences: { webSecurity: false, preload: path.join(__dirname, 'preload.js'), }, - width: 1280, - height: 720, }); }; diff --git a/build.js b/build.js index 334f6da5..a891e838 100644 --- a/build.js +++ b/build.js @@ -13,11 +13,7 @@ const config = { ], linux: { target: ["AppImage"], - desktop: { - Name: "Presenton", - Icon: "resources/ui/assets/images/presenton_short_filled.png", - Categories: ["Utility"], - }, + icon: "resources/ui/assets/images/presenton_short_filled.png", }, } diff --git a/package.json b/package.json index 39931c13..daeddbf7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "presenton", "main": "app_dist/main.js", - "version": "0.0.0", + "version": "0.0.1", "description": "Presenton Open Source", "homepage": "https://presenton.ai", "author": { From 81b825833080ab85dec97674438cc92b22a923f1 Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Mon, 12 May 2025 02:39:40 +0545 Subject: [PATCH 3/7] Adds: Buildspec to compile fastapi --- package.json | 2 +- .../presentation/handlers/generate_stream.py | 4 ++ servers/fastapi/fastapi.spec | 44 ------------------- servers/fastapi/fastapi_app.spec | 38 ---------------- servers/fastapi/server.spec | 6 +-- 5 files changed, 8 insertions(+), 86 deletions(-) delete mode 100644 servers/fastapi/fastapi.spec delete mode 100644 servers/fastapi/fastapi_app.spec diff --git a/package.json b/package.json index 754f07a4..9db30d13 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "build:ts": "tsc", "build:css": "tailwindcss -i ./resources/ui/assets/css/tailwind.import.css -o ./resources/ui/assets/css/tailwind.css --watch", "build:nextjs": "rm -rf resources/nextjs && cp -r servers/nextjs resources/nextjs && cd resources/nextjs && npm install --omit=dev && npm run build", - "build:fastapi": "rm -rf resources/fastapi && cd servers/fastapi && .venv/bin/pyinstaller --name fastapi --distpath ../../resources server.py", + "build:fastapi": "rm -rf resources/fastapi && cd servers/fastapi && .venv/bin/pyinstaller server.spec", "build:electron": "tsc && node build.js", "clean:build": "rm -rf resources/nextjs && rm -rf resources/fastapi" }, diff --git a/servers/fastapi/api/routers/presentation/handlers/generate_stream.py b/servers/fastapi/api/routers/presentation/handlers/generate_stream.py index 6f04560f..90d6e469 100644 --- a/servers/fastapi/api/routers/presentation/handlers/generate_stream.py +++ b/servers/fastapi/api/routers/presentation/handlers/generate_stream.py @@ -104,6 +104,10 @@ class PresentationGenerateStreamHandler: data=json.dumps({"type": "chunk", "chunk": chunk.content}), ).to_string() + print("-" * 40) + print(presentation_text) + print("-" * 40) + presentation_json = output_parser.parse(presentation_text) print("-" * 40) diff --git a/servers/fastapi/fastapi.spec b/servers/fastapi/fastapi.spec deleted file mode 100644 index 5fc17ead..00000000 --- a/servers/fastapi/fastapi.spec +++ /dev/null @@ -1,44 +0,0 @@ -# -*- mode: python ; coding: utf-8 -*- - - -a = Analysis( - ['server.py'], - pathex=[], - binaries=[], - datas=[], - hiddenimports=[], - hookspath=[], - hooksconfig={}, - runtime_hooks=[], - excludes=[], - noarchive=False, - optimize=0, -) -pyz = PYZ(a.pure) - -exe = EXE( - pyz, - a.scripts, - [], - exclude_binaries=True, - name='fastapi', - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, - console=True, - disable_windowed_traceback=False, - argv_emulation=False, - target_arch=None, - codesign_identity=None, - entitlements_file=None, -) -coll = COLLECT( - exe, - a.binaries, - a.datas, - strip=False, - upx=True, - upx_exclude=[], - name='fastapi', -) diff --git a/servers/fastapi/fastapi_app.spec b/servers/fastapi/fastapi_app.spec deleted file mode 100644 index 84202123..00000000 --- a/servers/fastapi/fastapi_app.spec +++ /dev/null @@ -1,38 +0,0 @@ -# -*- mode: python ; coding: utf-8 -*- - - -a = Analysis( - ['server.py'], - pathex=[], - binaries=[], - datas=[], - hiddenimports=[], - hookspath=[], - hooksconfig={}, - runtime_hooks=[], - excludes=[], - noarchive=False, - optimize=0, -) -pyz = PYZ(a.pure) - -exe = EXE( - pyz, - a.scripts, - a.binaries, - a.datas, - [], - name='fastapi_app', - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, - upx_exclude=[], - runtime_tmpdir=None, - console=True, - disable_windowed_traceback=False, - argv_emulation=False, - target_arch=None, - codesign_identity=None, - entitlements_file=None, -) diff --git a/servers/fastapi/server.spec b/servers/fastapi/server.spec index af596571..04c78fcc 100644 --- a/servers/fastapi/server.spec +++ b/servers/fastapi/server.spec @@ -5,7 +5,7 @@ a = Analysis( ['server.py'], pathex=[], binaries=[], - datas=[], + datas=[('assets', 'assets')], hiddenimports=[], hookspath=[], hooksconfig={}, @@ -21,7 +21,7 @@ exe = EXE( a.scripts, [], exclude_binaries=True, - name='server', + name='fastapi', debug=False, bootloader_ignore_signals=False, strip=False, @@ -40,5 +40,5 @@ coll = COLLECT( strip=False, upx=True, upx_exclude=[], - name='server', + name='fastapi', ) From 37406ae7b16f5e7d677f97dce65c589c42196228 Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Mon, 12 May 2025 02:46:22 +0545 Subject: [PATCH 4/7] Changes: fastapi build spec --- servers/fastapi/Dockerfile | 50 ------------------------------------- servers/fastapi/server.spec | 2 ++ 2 files changed, 2 insertions(+), 50 deletions(-) delete mode 100644 servers/fastapi/Dockerfile diff --git a/servers/fastapi/Dockerfile b/servers/fastapi/Dockerfile deleted file mode 100644 index 6c477eb3..00000000 --- a/servers/fastapi/Dockerfile +++ /dev/null @@ -1,50 +0,0 @@ -# Build stage -FROM python:3.11-slim AS builder - -WORKDIR /app -COPY requirements.txt . - - -# Install build dependencies and pip packages in one layer -RUN apt-get update && apt-get install -y --no-install-recommends \ - libreoffice \ - poppler-utils \ - ffmpeg \ - fonts-noto \ - fonts-dejavu \ - fonts-liberation \ - fonts-freefont-ttf \ - fonts-roboto \ - fonts-noto-core \ - && rm -rf /var/lib/apt/lists/* \ - && pip install --no-cache-dir -r requirements.txt - -# Final stage -FROM python:3.11-slim - -WORKDIR /app - -# Install only runtime dependencies -RUN apt-get update && apt-get install -y --no-install-recommends \ - libreoffice \ - poppler-utils \ - ffmpeg \ - fonts-noto \ - fonts-dejavu \ - fonts-liberation \ - fonts-freefont-ttf \ - fonts-roboto \ - fonts-noto-core \ - && rm -rf /var/lib/apt/lists/* - - -# Copy installed Python packages from builder -COPY --from=builder /usr/local/lib/python3.11/site-packages/ /usr/local/lib/python3.11/site-packages/ -COPY --from=builder /usr/local/bin/ /usr/local/bin/ - -# Copy application code and fonts -COPY . /app -COPY ./fonts /usr/share/fonts/ -RUN fc-cache -fv - -CMD ["python", "server.py"] \ No newline at end of file diff --git a/servers/fastapi/server.spec b/servers/fastapi/server.spec index 04c78fcc..bd80e0b8 100644 --- a/servers/fastapi/server.spec +++ b/servers/fastapi/server.spec @@ -32,6 +32,7 @@ exe = EXE( target_arch=None, codesign_identity=None, entitlements_file=None, + distpath='../../resources/fastapi', ) coll = COLLECT( exe, @@ -41,4 +42,5 @@ coll = COLLECT( upx=True, upx_exclude=[], name='fastapi', + distpath='../../resources/fastapi', ) From 574748f4f85d1ce71d0bb00dc99341071504385f Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Mon, 12 May 2025 02:50:29 +0545 Subject: [PATCH 5/7] Changes: fastapi server build spec --- package.json | 4 ++-- servers/fastapi/server.spec | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 9db30d13..78a74376 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "build:ts": "tsc", "build:css": "tailwindcss -i ./resources/ui/assets/css/tailwind.import.css -o ./resources/ui/assets/css/tailwind.css --watch", "build:nextjs": "rm -rf resources/nextjs && cp -r servers/nextjs resources/nextjs && cd resources/nextjs && npm install --omit=dev && npm run build", - "build:fastapi": "rm -rf resources/fastapi && cd servers/fastapi && .venv/bin/pyinstaller server.spec", + "build:fastapi": "rm -rf resources/fastapi && cd servers/fastapi && .venv/bin/pyinstaller --distpath ../../resources server.spec", "build:electron": "tsc && node build.js", "clean:build": "rm -rf resources/nextjs && rm -rf resources/fastapi" }, @@ -34,4 +34,4 @@ "tailwindcss": "^4.1.5", "tree-kill": "^1.2.2" } -} +} \ No newline at end of file diff --git a/servers/fastapi/server.spec b/servers/fastapi/server.spec index bd80e0b8..04c78fcc 100644 --- a/servers/fastapi/server.spec +++ b/servers/fastapi/server.spec @@ -32,7 +32,6 @@ exe = EXE( target_arch=None, codesign_identity=None, entitlements_file=None, - distpath='../../resources/fastapi', ) coll = COLLECT( exe, @@ -42,5 +41,4 @@ coll = COLLECT( upx=True, upx_exclude=[], name='fastapi', - distpath='../../resources/fastapi', ) From 997e50e15b00078216e146ee229d8a9c7b76bfd0 Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Mon, 12 May 2025 03:02:05 +0545 Subject: [PATCH 6/7] Changes: python assets path to locate assets after bundling --- servers/fastapi/api/utils.py | 6 ++++++ servers/fastapi/image_processor/icons_finder.py | 9 ++++++--- .../fastapi/image_processor/icons_vectorstore_utils.py | 5 +++-- servers/fastapi/image_processor/images_finder.py | 3 ++- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/servers/fastapi/api/utils.py b/servers/fastapi/api/utils.py index 31646834..aeaf3ee7 100644 --- a/servers/fastapi/api/utils.py +++ b/servers/fastapi/api/utils.py @@ -1,6 +1,7 @@ import asyncio import json import os +import sys import traceback from typing import List, Optional @@ -47,6 +48,11 @@ def update_env_with_user_config(): os.environ["GOOGLE_API_KEY"] = user_config.GOOGLE_API_KEY +def get_resource(relative_path): + base_path = getattr(sys, "_MEIPASS", os.path.dirname(os.path.abspath(__file__))) + return os.path.join(base_path, relative_path) + + def replace_file_name(old_name: str, new_name: str) -> str: splitted = old_name.split(".") if len(splitted) < 1: diff --git a/servers/fastapi/image_processor/icons_finder.py b/servers/fastapi/image_processor/icons_finder.py index ac04f8b6..82cc0c1b 100644 --- a/servers/fastapi/image_processor/icons_finder.py +++ b/servers/fastapi/image_processor/icons_finder.py @@ -1,6 +1,7 @@ import os from typing import List, Optional +from api.utils import get_resource from ppt_generator.models.query_and_prompt_models import ( IconCategoryEnum, IconQueryCollectionWithData, @@ -21,11 +22,11 @@ async def get_icon( with open(output_path, "wb") as f_a: try: - with open(f"assets/icons/bold/{icon_name}.png", "rb") as f_b: + with open(get_resource(f"assets/icons/bold/{icon_name}.png"), "rb") as f_b: f_a.write(f_b.read()) except Exception as e: print("Error finding icon: ", e) - with open(f"assets/icons/placeholder.png", "rb") as f_b: + with open(get_resource("assets/icons/placeholder.png"), "rb") as f_b: f_a.write(f_b.read()) @@ -42,7 +43,9 @@ async def get_icons( icon_names = [result.page_content for result in results] - icon_paths = [f"assets/icons/bold/{each}-bold.png" for each in icon_names] + icon_paths = [ + get_resource(f"assets/icons/bold/{each}-bold.png") for each in icon_names + ] icon_temp_paths = [] diff --git a/servers/fastapi/image_processor/icons_vectorstore_utils.py b/servers/fastapi/image_processor/icons_vectorstore_utils.py index d41ed5ae..1eaf7119 100644 --- a/servers/fastapi/image_processor/icons_vectorstore_utils.py +++ b/servers/fastapi/image_processor/icons_vectorstore_utils.py @@ -4,10 +4,11 @@ from langchain_core.vectorstores import InMemoryVectorStore from langchain_huggingface import HuggingFaceEmbeddings from langchain_core.documents import Document +from api.utils import get_resource def get_icons_vectorstore(): - vector_store_path = "assets/icons_vectorstore.json" + vector_store_path = get_resource("assets/icons_vectorstore.json") embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2") @@ -17,7 +18,7 @@ def get_icons_vectorstore(): vector_store = InMemoryVectorStore(embeddings) - with open("assets/icons.json", "r") as f: + with open(get_resource("assets/icons.json"), "r") as f: icons = json.load(f) icon_names = [icon["name"] for icon in icons["icons"]] diff --git a/servers/fastapi/image_processor/images_finder.py b/servers/fastapi/image_processor/images_finder.py index 6eae412b..bec1cc76 100644 --- a/servers/fastapi/image_processor/images_finder.py +++ b/servers/fastapi/image_processor/images_finder.py @@ -6,6 +6,7 @@ from openai import OpenAI from ppt_generator.models.query_and_prompt_models import ( ImagePromptWithThemeAndAspectRatio, ) +from api.utils import get_resource async def generate_image( @@ -25,7 +26,7 @@ async def generate_image( await image_gen_func(image_prompt, output_path) except Exception as e: print(f"Error generating image: {e}") - with open("assets/images/placeholder.jpg", "rb") as f_a: + with open(get_resource("assets/images/placeholder.jpg"), "rb") as f_a: with open(output_path, "wb") as f_b: f_b.write(f_a.read()) From 9edbba2948b47e23213af0072008f6c0178cf713 Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Mon, 12 May 2025 03:30:18 +0545 Subject: [PATCH 7/7] Adds: dependencies in build config --- build.js | 1 + resources/ui/homepage/index.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build.js b/build.js index a891e838..44a51c40 100644 --- a/build.js +++ b/build.js @@ -10,6 +10,7 @@ const config = { "resources", "app_dist", "node_modules", + "dependencies/libreoffice/linux_build/libreoffice.appimage" ], linux: { target: ["AppImage"], diff --git a/resources/ui/homepage/index.html b/resources/ui/homepage/index.html index bf42acbc..6383907c 100644 --- a/resources/ui/homepage/index.html +++ b/resources/ui/homepage/index.html @@ -25,7 +25,7 @@ Presenton Logo -

Waiting for server to start...

+

Just a moment...