skarlett / coggie-bot Goto Github PK
View Code? Open in Web Editor NEWtext bot utilities in rust
License: BSD 2-Clause "Simplified" License
text bot utilities in rust
License: BSD 2-Clause "Simplified" License
@Coggerz play <url>
should automatically run @Coggerz join
as well to prevent users from having to rerun the play command.
As of 1e4652a the state of documentation is poor at best. Many steps have become stale.
Nix currently is the only officially support deployment. The following objectives should be met to increase the ease of use.
use more than one token on mockingbird
[ x ]
#48
[ x ]
#49
[ ] auto-updater nixos
[ x ] auto-updater linux
[ ] pre-release-cmd
[ ] nix store feature flag
[ ] feature-list-cmd +config
[ ] dj-room +config
[ ? ] maybe add createFeature
function to compose the set
[ ] compilers
[ ] nix-based extensions called cogs.
see #120
[ ] allow coggiebot to know what features it was compiled with -- something like a compile time configuration file
Currently there is no universal system for adding extra components outside of using rust. Effectively there should be some feature parity with http-cgi scripts. The a child process is ran with input provided by the message as stdin. Data written to stdout is considered the response for the message.
The strategy for formulating embeds/replies has not been specified yet.
Commands will be mappied onto universal identifiers, and placed as commands inside coggiebot's controllers. This could be built upon #141
the sampling cycles across several queues taking one off of each
if it's not your turn, your can still edit, remove, add things to your personal queue. When it IS your turn, an item is popped from your queue
[ ] const config #33 + dj-room (1.5)
[X] finish demix #31 + prerelease #34 (1.6)
[ ] finish #28 (comment) (1.7)
[ ] features modify const-config (1.8)
[ ] nixos auto updater (1.9) dropped
[ ] nixos as stable release (2.0) dropped
and finally then at the start of 2.0 #30
between fed 8th, and fed 9th, a commit happened that broke the auto-updater for linux.
Systemd is no longer activating the script on a timely basis.
Feb 08 21:03:36 ip-10-0-0-149 update[2410483]: start migrating
Feb 08 21:03:36 ip-10-0-0-149 update[2410523]: Warning: Can't execute disable on the unit file path. Proceeding with the unit name.
Feb 08 21:03:36 ip-10-0-0-149 update[2410523]: Removed /etc/systemd/system/multi-user.target.wants/coggiebotd.service.
Feb 08 21:03:36 ip-10-0-0-149 update[2410523]: Removed /etc/systemd/system/coggiebotd.service.
Feb 08 21:03:36 ip-10-0-0-149 update[2410540]: Warning: Can't execute disable on the unit file path. Proceeding with the unit name.
Feb 08 21:03:36 ip-10-0-0-149 update[2410540]: Removed /etc/systemd/system/multi-user.target.wants/coggiebotd-update.service.
Feb 08 21:03:36 ip-10-0-0-149 update[2410540]: Removed /etc/systemd/system/coggiebotd-update.service.
Feb 08 21:03:37 ip-10-0-0-149 systemd[1]: coggiebotd-update.service: Current command vanished from the unit file, execution of the command list won't be resumed.
Feb 08 21:03:37 ip-10-0-0-149 update[2410556]: Warning: Can't execute disable on the unit file path. Proceeding with the unit name.
Feb 08 21:03:37 ip-10-0-0-149 update[2410556]: Removed /etc/systemd/system/timers.target.wants/coggiebotd-update.timer.
Feb 08 21:03:37 ip-10-0-0-149 update[2410556]: Removed /etc/systemd/system/coggiebotd-update.timer.
Feb 08 21:03:41 ip-10-0-0-149 update[2410572]: these 16 derivations will be built:
Last automatic activation
[ ] XXXify url playing
[ ] arl tester
-- Journal begins at Sun 2022-08-07 02:13:38 UTC, ends at Mon 2023-03-20 15:41:49 UTC. --
Mar 20 14:44:27 ip-10-0-0-149 update[4034209]: hint: git branch -m
Mar 20 14:44:27 ip-10-0-0-149 update[4034209]: Initialized empty Git repository in /tmp/coggie-bot.update.6aSvtY9b/.git/
Mar 20 14:44:27 ip-10-0-0-149 update[4034211]: From https://github.com/Skarlett/coggie-bot
Mar 20 14:44:27 ip-10-0-0-149 update[4034211]: * branch master -> FETCH_HEAD
Mar 20 14:44:27 ip-10-0-0-149 update[4034211]: * [new branch] master -> origin/master
Mar 20 14:44:27 ip-10-0-0-149 update[4034205]: /
Mar 20 14:44:27 ip-10-0-0-149 update[4034230]: /nix/store/a6746jbdn8qav5vfmx4la9ybls10g90n-update/bin/update: line 33: /bin/coggiebot: No such file or directory
Mar 20 14:44:27 ip-10-0-0-149 update[4034205]: start migrating
Mar 20 14:44:27 ip-10-0-0-149 update[4034231]: /nix/store/a6746jbdn8qav5vfmx4la9ybls10g90n-update/bin/update: line 45: /result/disable: No such file or directory
Mar 20 14:44:27 ip-10-0-0-149 update[4034232]: /nix/store/a6746jbdn8qav5vfmx4la9ybls10g90n-update/bin/update: line 47: /bin/nix: No such file or directory
Mar 20 14:44:27 ip-10-0-0-149 update[4034233]: /nix/store/a6746jbdn8qav5vfmx4la9ybls10g90n-update/bin/update: line 48: /result/enable: No such file or directory
Mar 20 14:44:28 ip-10-0-0-149 update[4034250]: Too few arguments.
Mar 20 14:44:28 ip-10-0-0-149 update[4034251]: Failed to start update-timer.service: Unit update-timer.service not found.
Mar 20 14:44:28 ip-10-0-0-149 update[4034205]: migrating finished
Mar 20 14:44:28 ip-10-0-0-149 systemd[1]: coggiebotd-update.service: Succeeded.
Mar 20 14:44:28 ip-10-0-0-149 systemd[1]: Finished Automatically update coggiebotd..
Mar 20 14:59:29 ip-10-0-0-149 systemd[1]: Starting Automatically update coggiebotd....
add nix
as a feature to coggiebot
How it (may) trigger:
Failed to join voice channel: Driver(Ws(Json(Error("invalid value: integer 18, expected opcode in [0--9] + [12--13]", line: 1, column: 8))))
allows forks & branches to be selectively tested by users
make it so coggie can compile and run stuff provided to it
Mar 19 11:37:53 ip-10-0-0-149 update[3841300]: building '/nix/store/52zpk5jjila9fv9j0dwssk3rzbdjfa0x-coggiebot-1.3.8.drv'...
Mar 19 11:38:24 ip-10-0-0-149 update[3841300]: building '/nix/store/v9djw1xh35gr4nwyc8fcpy9i73p0p9sw-coggiebot.drv'...
Mar 19 11:38:25 ip-10-0-0-149 update[3854245]: /nix/store/2l7svj8slv13x9zpp97y7dpw4w6zir9c-update/bin/update: line 48: /var/coggiebot/result/enable: No such file or directory
Mar 19 11:38:26 ip-10-0-0-149 update[3854262]: Failed to restart coggiebotd.service: Unit coggiebotd.service not found.
Mar 19 11:38:26 ip-10-0-0-149 update[3854263]: Failed to start coggiebotd.service: Unit coggiebotd.service not found.
Mar 19 11:38:26 ip-10-0-0-149 update[3841211]: migrating finished
Mar 19 11:38:26 ip-10-0-0-149 systemd[1]: coggiebotd-update.service: Succeeded.
Mar 19 11:38:26 ip-10-0-0-149 systemd[1]: Started coggiebotd-update.service.
Mar 19 11:38:26 ip-10-0-0-149 systemd[1]: coggiebotd-update.service: Consumed 28min 54.634s CPU time.
[ x ] copy paste example from songbird
[ x ] make nix compatible with features that bring in new packages
[ ] make plan for demix
[ ] figure out dependency issues in coggiebot-features in nix
[ ] integration tests
track-metadata
to see the json response behind the media. Metadata should be dropped as a file attachment.Coggie should take in a file of some kind, json/toml/etc, and include it as a compile time datatype. This datatype should be extensible during the build process, and by external programs packaged with coggiebot, via nix, and any other desirable means.
Proposal: add capabilities against misuse of administrative actions. These capabilities should never take effect during normal operations, They require no administrative actions to collect information, and data collected on individual shouldn't ever contain message contents, attachments, username, nickname, biography, account connections, or any other artifacts deemed as PII, or uniquely identifiable with the exception of the discord account ID & nicknames.
Preventive action:
Preservation & cleanup goals:
Some statistics maybe collected for each user individually.
Keep a snapshot of the servers configuration via json
Bot indicates the song is queued, and ready to play.
Song begins to play, roughly 30 seconds into it - it will halt the audio, and kill ffmpeg.
It's likely that the API is getting the preview audio from sound cloud.
A possible solution would be to update the mockingbird
controller (https://github.com/Skarlett/coggie-bot/tree/master/src/controllers) to check the audio of length, and resource the audio if its within the parameters of a sample length.
Users may conduct demonstrations, test deployments, experiment, jailed execution, game servers, emulate instruction sets,
Causes of termination will be:
A terminal session will be available by request of the operator by invoking:
(Fig A)
@botname lab <OS>?@<version>
Fig A.
A direct message will be sent to the operator, with the prompt:
Lab VM <identity> started:
webshell (administrator): https://<domain>/<feature-name>/<identity>/auth
webshell (share): https://<domain>/<feature-name>/<identity>/auth?u=<auth-session>
ssh (administrator): <identity>@<domain>
tls-dhe-aes-256-gcm-sha256, <more ciphers>
.., ...
The VM will be placed in a private network, and will be unable to access other people's VMs unless explicitly agreed upon between both operators.
Though the box doesn't allow ingress traffic, you may ask Coggiebot to open ports on your behalf.
An example of invoking the procedure:
@botname lab <id> --open-port 4489
The purposal for the backend implementation would consist of kubernetes, a vpn, and a bastion host. Each node in the private cluster would consist of primary
bot says ffmpeg cannot be sourced
@bot <link type>
should be determined from the link contextUse an LLM to determine an answer based on context.
first seen in #120
you should be able to link your last.fm account to coggie bot, then when songs are played (50% or 4 minutes, whichever comes first) anyone who hasn't opted out with not listening
will get a scrobble for the song that was played.
deemix-metadata
returns {"error": {"name": "LinkNotRecognized", "reason": "Link%20is%20not%20recognized."}}
Gapless, Each song finishes entirely before the other begins.
Overlap, The end of sound A bleeds into the next track, gradually mixing the audio sources on the last N seconds of the audio track
This would allow users to pass in a temporary ngrok link to their local subsonic server and play their local music collection through the bot.
there is no way to current to view the queued songs.
@bot ls|list
: should produce a list of the currently enqueued.check if the CI says it failed, or is still running, and update using CI cache
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.