Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autoscript #1398

Merged
merged 21 commits into from
Jul 8, 2023
Merged

Autoscript #1398

merged 21 commits into from
Jul 8, 2023

Conversation

vanosg
Copy link
Member

@vanosg vanosg commented Feb 6, 2023

One-line summary: Add autoscripts feature

Additional description (if needed):
The autoscripts system will allow Eggdrop to download, install, and configure scripts via the partyline. Since it's inception, users have needed to load a Tcl script into Eggdrop by downloading a Tcl file, editing the file to customize settings, and then sourcing that file in the config file. The autoscripts system helps by:

  • Centralizing commonly-used scripts in a single location
  • Allowing scripts to be downloaded via the partyline
  • Allowing script settings to be configured via the partyline
  • Allowing user-written scripts to be managed by the autoscripts system
  • Providing a documented API to write autoscripts-compatible scripts

To take advantage of this, scripts will have to be modified to adhere to a published API and be accompanied by a manifest.json file. Eggheads will host commonly used scripts so that users can download known "good" scripts. Additionally, the API will allow scripts to be packaged and distributed outside of being downloaded from eggheads.

And obviously the traditional 'source' method of loading scripts is not going away!

@vanosg vanosg added this to the v1.10 milestone Feb 6, 2023
@ZarTek-Creole
Copy link
Contributor

ZarTek-Creole commented Feb 6, 2023

First of all thank you for this realization, very good work. I'm glad the idea was taken for a scripting system that we had talked about with crazycat.

I see that in the current state, several points:

  • ".egg list" does not work. "Missing or unknown subcommand"
  • The name autoscript, I don't find it great as a name for a script manager
  • Having an .egg and .scripts alias isn't a good idea. A single command should avoid future confusion.
  • It would be wise to use namespaces for the code. to avoid conflict with other scripts
  • It's good to centralize scripts from one place, but it would be better if the user could add additional sources
  • Maybe it would also be better to do ".egg fetch author/script" I imagine that has a conflict of interest if we put only one "youtube" script out of the 20 that exist of which there are easily 2-3 often use.
  • Wouldn't it take the bot's master rights to be able to install scripts?
  • When we run ".egg" without arguments, don't display "Missing or unknown subcommand"
  • Have the possibility to choose the version of the scripts. For various reasons it may be useful to use a specific version
  • Have an info command ".egg info <script>" that gives information, like the web address of the project. Versions, bug reports, tags, etc.
  • an ".egg search " to search for scripts
  • Tags for scripts. to search, classify. For example "youtube" "http" "music" .. for youtube script

If you want me to work on code snippets or points, let me know.

If it can help here is my debut work from 8 months ago in the same idea
https://github.com/ZarTek-Creole/TCL-SCRIPT-MANAGER

@thommey thommey marked this pull request as draft February 6, 2023 17:13
@vanosg
Copy link
Member Author

vanosg commented Feb 14, 2023

Add base eggdrop version update check?

@vanosg vanosg marked this pull request as ready for review July 8, 2023 19:03
@vanosg vanosg merged commit 3e4befa into develop Jul 8, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants