bocajthomas / SE-Extended

SE Extended is a fork from the original SnapEnhance app offering an enhanced Snapchat experience
https://t.me/SE_Extended
GNU General Public License v3.0
28 stars 3 forks source link

Import / export custom themes #98

Open rhunk opened 1 week ago

rhunk commented 1 week ago

Description

Would it be possible to add a way of importing and exporting themes in json or other formats, and also a public theme catalog updated by the community and accessible in the application, as well as a way of importing a theme via a URL?

Agreement

suryadip2008 commented 1 week ago

This is actually a very good suggestion. Especially the public theme catalogue which can be updated by the community which will expand the availability of themes. How about maintaing a seperate url and link it to the app which will include theme contribution from various users? (This concept can also be used to contribute several features such as friend tracker rules which can be available as a preset in the website and can be imported and added in the app).

bocajthomas commented 1 week ago

This is actually a very good suggestion. Especially the public theme catalogue which can be updated by the community which will expand the availability of themes. How about maintaing a seperate url and link it to the app which will include theme contribution from various users? (This concept can also be used to contribute several features such as friend tracker rules which can be available as a preset in the website and can be imported and added in the app).

Abit like the Import from URL button on the scripts tab

suryadip2008 commented 1 week ago

This is actually a very good suggestion. Especially the public theme catalogue which can be updated by the community which will expand the availability of themes. How about maintaing a seperate url and link it to the app which will include theme contribution from various users? (This concept can also be used to contribute several features such as friend tracker rules which can be available as a preset in the website and can be imported and added in the app).

Ok so, I researched a lot and stumbled upon an idea. This is the simplest process I have thought about creating a community-driven theme catalog where users can contribute and download themes or any other presets for the SE Extended app. So, let's say we create a seperate repository known as "Themes". The structure of the repository will be like this: Themes/ ├── themes/ │ ├── theme1.json │ ├── theme2.json │ ├── ... └── README.md

Now we can include several instructions in the readme file which will make the process simpler(one such example):

SE Extended Themes

Welcome to the SE Extended Themes repository! Here, you can upload your custom themes and download themes created by others.

How to Contribute a Theme

  1. Fork this Repository: Click the 'Fork' button at the top right of this page to create a copy of this repository in your account.
  2. Upload Your Theme:
    • Go to your forked repository.
    • Navigate to the themes/ directory.
    • Click on Add file and select Upload files.
    • Upload your theme JSON file.
    • Commit the changes.
  3. Create a Pull Request:
    • Go back to the original repository.
    • Click on Pull Requests and then New Pull Request.
    • Select your forked repository and the branch with your theme.
    • Create the pull request.

Your theme will be reviewed and merged into the main repository.

How to Download a Theme

  1. Browse the themes/ directory to find a theme you like.
  2. Click on the theme file to open it.
  3. Click on the Raw button to view the raw JSON file.
  4. Right-click and select Save as... to download the theme JSON file.
  5. Import the theme in the SE Extended App.

Guidelines

Thank you for contributing!

This concept can not only be used for themes but also for friend tracker presets as I had earlier suggested. How about making a repository that is not specific to themes but to a wide range of things as well. (Like name the repository SE Extended-Presets) The process will be the same. Let me know what do you think of this idea!

bocajthomas commented 1 week ago

@suryadip2008 if its snapenhance based repo i wont have access. just remember that

suryadip2008 commented 1 week ago

@suryadip2008 if its snapenhance based repo i wont have access. just remember that

Then the only solution is to create seperate repositories for seperate things like for themes preset you create it and for the friend tracker part someone else will do.

Beingzain commented 1 week ago

Addition of separate tab for themes...Same like a scripting engine...Users have option to import to themes from url as well as from a device folder manager .... Additionally adding the themes in bulk ...would be a great option too.. Example if a user have more than one favorite themes...he can import it his/her favourite directly from the file manager Addition of separate Themes topic in Telegram Discussions topic will be useful... where user can provide there favorite themes ....separate repos for friend tracker rules and themes will be a great move for the availability of user made themes and friend tracker rules

suryadip2008 commented 1 week ago

Addition of separate tab for themes...Same like a scripting engine...Users have option to import to themes from url as well as from a device folder manager .... Additionally adding the themes in bulk ...would be a great option too.. Example if a user have more than one favorite themes...he can import it his/her favourite directly from the file manager Addition of separate Themes topic in Telegram Discussions topic will be useful... where user can provide there favorite themes ....separate repos for friend tracker rules and themes will be a great move for the availability of user made themes and friend tracker rules

Having a seperate tab for themes is a great idea. As suggested by you, the user can just choose a dedicated themes folder and the themes which are there in the folder should show up in the themes tab in the SE app(Like Scripts). For example I have three themes in the file manager, let's take for example: Midnight Blue, Misty Sea, Orange Meadow. These themes should show up in the themes tab(like scripts do) so that the user can easily switch between multiple themes whenever they want. For example: I want to use Midnight Blue, I go to the themes tab, select Midnight Blue and click on apply. Same goes for other themes.

Also, in the themes tab, divide it into three sections. One should be pre-installed themes(Themes which are already pre-installed and come with the app such as Material you, Amoled Dark theme,etc). Another section should be of user-installed themes(Themes which can be downloaded by the user through the repo[which I had already suggested] and imported there). You can also make a third and the last section that will be of creation of custom themes through which the user will create custom themes, export it in a JSON format and upload it to the repo. These sections can be expanded or minimized through a drop-down menu.

Then in the themes tab, incoporate import/export of themes. This will ensure seamless integration of themes.

Beingzain commented 1 week ago

Last but not least .....Providing Users a hostile environment in which community can post there themes Additionally a strong eye from community administration and few rules Like 1) User must provide a short description of a theme & friend tracker rules. 2) Screenshots of themes must be attached. 3) No cross posting ....if the theme is only commited for SE & SE Extended Users...the provider will only post In these platforms verified discussions and repos 4) Theme provider will solve the themes issues 5) Theme provider must provide the changelog if he/she updates the theme

These suggestions & rules ..will allow a well check and balance in the themes community section ....and provide a greater control and improve the quality of themes provided by the individual creator also on the basis of screenshots users can pick there fav theme easily & can avoid not useful themes

suryadip2008 commented 1 week ago

Last but not least .....Providing Users a hostile environment in which community can post there themes Additionally a strong eye from community administration and few rules Like

  1. User must provide a short description of a theme & friend tracker rules.
  2. Screenshots of themes must be attached.
  3. No cross posting ....if the theme is only commited for SE & SE Extended Users...the provider will only post In these platforms verified discussions and repos
  4. Theme provider will solve the themes issues
  5. Theme provider must provide the changelog if he/she updates the theme

These suggestions & rules ..will allow a well check and balance in the themes community section ....and provide a greater control and improve the quality of themes provided by the individual creator also on the basis of screenshots users can pick there fav theme easily & can avoid not useful themes

The contribution will be made through individual forks which will carry out pull requests to merge with the Main Repo. The guidelines mentioned above by you (1 & 2) can be added to the readme.md file. Check comment https://github.com/bocajthomas/SE-Extended/issues/98#issuecomment-2184356672 last section. And for guidelines no. 3,4 & 5 (provided by you) , the official owner/creator of the main repo will handle these issues.

Beingzain commented 1 week ago

That's an awesome roadmap you provided, but more platforms are required to distribute the themes.

Not everyone uses GitHub, and not everyone has knowledge about these repositories.

To be effective and reach the maximum number of users, creators must use discussion topics.

suryadip2008 commented 1 week ago

That's an awesome roadmap you provided, but more platforms are required to distribute the themes.

Not everyone uses GitHub, and not everyone has knowledge about these repositories.

To be effective and reach the maximum number of users, creators must use discussion topics.

In my opinion, using GitHub to distribute themes is crucial for maintaining security. Themes uploaded to GitHub will be first reviewed before being merged into the original repository, which will help ensure they are safe and free from malicious code. While platforms like Telegram are convenient, the same level of monitoring can't be done as users can share their themes directly, which could pose security risks. By centralizing theme distribution on GitHub, we can better protect our community and provide a safer experience for everyone.

Beingzain commented 1 week ago

That's a valid point ❤️

authorisation commented 1 week ago

I could offer up a spot on SnapEnhance/themes If anyone is willing to maintain that repository and merge PRs, let me know I will give you access.

The only condition with this is that you actually take care of the commit history (No clutter) and keep it in the same format as every other SnapEnhance repository, other than that feel free to do what you want.

suryadip2008 commented 1 week ago

I could offer up a spot on SnapEnhance/themes If anyone is willing to maintain that repository and merge PRs, let me know I will give you access.

The only condition with this is that you actually take care of the commit history (No clutter) and keep it in the same format as every other SnapEnhance repository, other than that feel free to do what you want.

Please offer ownership of the https://github.com/SnapEnhance/themes to @bocajthomas as he is specialized in making themes. As for merging themes through forks and pull requests that part, the user will do. https://github.com/bocajthomas/SE-Extended/issues/98#issuecomment-2184356672

authorisation commented 1 week ago

I could offer up a spot on SnapEnhance/themes If anyone is willing to maintain that repository and merge PRs, let me know I will give you access. The only condition with this is that you actually take care of the commit history (No clutter) and keep it in the same format as every other SnapEnhance repository, other than that feel free to do what you want.

Please offer ownership of the https://github.com/SnapEnhance/themes to @bocajthomas as he is specialized in making themes. As for merging themes through forks and pull requests that part, the user will do. #98 (comment)

Yeah sure, I think you would also be a great fit.

bocajthomas commented 1 week ago

I could offer up a spot on SnapEnhance/themes If anyone is willing to maintain that repository and merge PRs, let me know I will give you access. The only condition with this is that you actually take care of the commit history (No clutter) and keep it in the same format as every other SnapEnhance repository, other than that feel free to do what you want.

Please offer ownership of the https://github.com/SnapEnhance/themes to @bocajthomas as he is specialized in making themes. As for merging themes through forks and pull requests that part, the user will do. #98 (comment)

Yeah sure, I think you would also be a great fit.

If you want me to yh

Beingzain commented 1 week ago

@bocajthomas my bro is the right choice so far ❤️🔐

authorisation commented 1 week ago

As for merging themes through forks and pull requests that part, the user will do. #98 (comment)

That won't work, someone with rw access to the repository needs to merge.

suryadip2008 commented 1 week ago

As for merging themes through forks and pull requests that part, the user will do. #98 (comment)

That won't work, someone with rw access to the repository needs to merge.

I'm sorry about that part. I meant to say that the user (the one who creates themes) will have to fork the original repository and then by uploading the theme to the fork, they will submit a pull request which will reviewed by the original repository owner and will be approved/rejected. Reference: https://github.com/bocajthomas/SE-Extended/issues/98#issuecomment-2184356672

authorisation commented 1 week ago

As for merging themes through forks and pull requests that part, the user will do. #98 (comment)

That won't work, someone with rw access to the repository needs to merge.

I'm sorry about that part. I meant to say that the user (the one who creates themes) will have to fork the original repository and then by uploading the theme to the fork, they will submit a pull request which will reviewed by the original repository owner and will be approved/rejected. Reference: #98 (comment)

And you expect who exactly to review and merge those PRs?

suryadip2008 commented 1 week ago

As for merging themes through forks and pull requests that part, the user will do. #98 (comment)

That won't work, someone with rw access to the repository needs to merge.

I'm sorry about that part. I meant to say that the user (the one who creates themes) will have to fork the original repository and then by uploading the theme to the fork, they will submit a pull request which will reviewed by the original repository owner and will be approved/rejected. Reference: #98 (comment)

And you expect who exactly to review and merge those PRs?

Completely upon you to decide who that will. I have already suggested earlier.