{"id":22912165,"url":"https://github.com/simplyyan/yandesksurf","last_synced_at":"2025-07-17T00:07:12.577Z","repository":{"id":252588252,"uuid":"840871320","full_name":"simplyYan/YanDesksurf","owner":"simplyYan","description":"A framework for creating desktop applications using web technologies (HTML, CSS and JavaScript)","archived":false,"fork":false,"pushed_at":"2024-08-11T00:24:28.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-04T07:41:14.000Z","etag":null,"topics":["browser","framework","python","python3","web-development"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simplyYan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":["https://github.com/simplyYan/simplyYan/blob/main/DONATE.MD"]}},"created_at":"2024-08-11T00:16:43.000Z","updated_at":"2024-12-31T20:27:38.000Z","dependencies_parsed_at":"2024-08-11T01:27:22.599Z","dependency_job_id":"d3b77365-592e-41bc-b171-30df416ddd21","html_url":"https://github.com/simplyYan/YanDesksurf","commit_stats":null,"previous_names":["simplyyan/yandesksurf"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/simplyYan/YanDesksurf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyYan%2FYanDesksurf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyYan%2FYanDesksurf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyYan%2FYanDesksurf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyYan%2FYanDesksurf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simplyYan","download_url":"https://codeload.github.com/simplyYan/YanDesksurf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyYan%2FYanDesksurf/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265553393,"owners_count":23787069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","framework","python","python3","web-development"],"created_at":"2024-12-14T04:27:02.701Z","updated_at":"2025-07-17T00:07:12.562Z","avatar_url":"https://github.com/simplyYan.png","language":"Python","funding_links":["https://github.com/simplyYan/simplyYan/blob/main/DONATE.MD"],"categories":[],"sub_categories":[],"readme":"# YanDesksurf Framework\n\nYanDesksurf is a Python framework that integrates a web browser with encryption and configuration capabilities using PyQt5. It's designed to provide a flexible environment for running web applications with built-in encryption support and a customizable UI.\n\n## Features\n\n- **Integrated Web Browser:** Based on PyQt5's QWebEngineView, offering full web capabilities.\n- **3D Acceleration:** Enabled by default for better performance with web graphics.\n- **Encryption Support:** Encrypts and decrypts application files for secure deployment.\n- **Dynamic Configuration:** Load and apply settings from a configuration file.\n- **Custom File Operations:** Executes file operations and system commands based on custom scripts.\n- **DOM Monitoring:** Monitors changes in the DOM and evaluates conditions based on those changes.\n\n## Installation\n\nYou can install it for Windows, Linux and macOS. For Windows, you can use the pre-compiled version (binary) by [clicking here](https://drive.google.com/file/d/1Tr4YMWHKTFJT6Lr7hijgOE6NyQd3znXV/view?usp=sharing), and for Linux and macOS, you can download the main file ([main.py](https://raw.githubusercontent.com/simplyYan/YanDesksurf/main/main.py)), convert it to executable with PyInstaller and use it!\n\n## Usage\n\n### Configuration\n\nUpon first launch, YanDesksurf will prompt you to configure the application:\n\n1. **Select a .zip file:** Choose a zip file containing your web application.\n2. **Encryption Key:** The framework will generate an encryption key and create an encrypted file.\n\nThis configuration is saved in `yansurf.json`, which is used for subsequent runs.\n\n### Encryption and Decryption\n\nYanDesksurf uses the `cryptography` library to encrypt and decrypt application files. Encrypted files are saved with a `.yansurf` extension.\n\n### File Operations\n\nThe `yanprog.yanprog` script is used to perform file operations and execute system commands:\n\n- `create_file filename`: Creates a new file.\n- `delete_file filename`: Deletes an existing file.\n- `rename_file src dst`: Renames a file.\n- `move_file src dst`: Moves a file.\n- `run_command command`: Executes a system command.\n\n### DOM Monitoring\n\nYanDesksurf monitors changes in the DOM:\n\n- **Title Changes:** Prints the new title and evaluates conditions.\n- **Content Changes:** Prints notifications when the page content changes.\n- **Page Hash:** Computes and prints the hash of the page content.\n\n### Configuration File\n\nThe `yansurf.json` configuration file contains:\n\n- `yansurf_file`: Path to the encrypted application file.\n- `encryption_key`: The key used for encryption and decryption.\n- `window_options`: Optional settings for window size and state.\n\n## Example Configuration File\n\n```json\n{\n    \"yansurf_file\": \"example.yansurf\",\n    \"encryption_key\": \"your-encryption-key-here\",\n    \"window_options\": {\n        \"width\": 1024,\n        \"height\": 768,\n        \"resizable\": true,\n        \"fullscreen\": false\n    }\n}\n```\n\n## License\n\nThis framework is open-source and free to use. See the LICENSE file for more details.\n\n## Contributing\n\nFeel free to contribute by submitting issues or pull requests. For more information on contributing, please refer to the CONTRIBUTING.md file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplyyan%2Fyandesksurf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimplyyan%2Fyandesksurf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplyyan%2Fyandesksurf/lists"}