consolidated, !r added, toke log and per user toke count tracking. Toke count on tooltip. Improved moderator commands & tokebot output formatting.
283 lines
14 KiB
Markdown
283 lines
14 KiB
Markdown
fore.st - Pineapple Express(v1.1-indev)
|
|
======
|
|
|
|
fore.st is the server software for ourfore.st, a community based chat & synced video embedding site tailored to service
|
|
the TTN community post-shutdown. The softwre is made freely available both for legal reasons
|
|
but also as it seems as that is what is best for the community in the advant of another shutdown.
|
|
|
|
fore.st is a fork of cytube and as such supports all of the same media sources,
|
|
and carries many of the same features. Modifcations to the software have been/are
|
|
being made to make the platform a more familiar place for TTN users. Contributions
|
|
are welcome.
|
|
|
|
## Installation
|
|
There is currently no installation guide for the software, however since not much has
|
|
changed in the backend, you should be fine with official [cytube docs](https://github.com/calzoneman/sync/wiki/CyTube-3.0-Installation-Guide).
|
|
|
|
## Contact
|
|
You can reach out by bugging rainbownapkin on the ttn discord or ourfore.st, you can also send an email to ourforest(at)420blaze.it
|
|
|
|
## Shoutouts
|
|
- Thanks to Simon for making TTN,
|
|
- Thanks to our excellent mod team for chat moderation and content aggregation
|
|
- Thanks to etchingham for being a community contact while TTN's been winding down, I think all of us see you as a pillar of the community so your support means a lot.
|
|
- Thanks to calzoneman for making [cytube](https://github.com/calzoneman/sync), that saved our asses.
|
|
- Thanks to the core TTN community and everyone else who's ever used it, I was only there for the last handful of years but it was an absolute fuckin' ride. You guys are the best, it isn't TTN but I hope this at least help fills the gap.
|
|
|
|
## Pineapple Express Indev Release Notes
|
|
This is the first indev release for fore.st 1.1 Pineapple Express. This is the last push before the codebase is merged upstream with the newest version of cytube. Should probably get that done sooner than later. Heres a check list of the planned/completed features in this revision:
|
|
|
|
dev goals for 1.1 pineapple express:
|
|
|
|
- quick shit & bugfixes ✓
|
|
- change markdown filters to require three symbols on each side, quickest fix for filters ✓
|
|
- move refresh button to title bar ✓
|
|
- delete custom embed button, replace with button under generel "add video" button ✓
|
|
- move playlist item count and length next to buttons & compact ui ✓
|
|
- hide playlist frame and control from users who don't have permission to view playlist (no one can see the afterparty playlist except mods, why should they have the controls cluttering things up?) ✓
|
|
- add "mention" to userlist dropdown menu ✓
|
|
- add "toke with" to userlist dropdown menu for shits n gigs ✓
|
|
- unlatch sync on pause and scrub, show sync button on titlebar when sync is unlatched, this wont support classic yt at the moment. Invidious support planned ✓
|
|
- caption support for raw video (no saving captions in channel history just yet, this will be in the next update which will involve a rework/addition to the database) ✓
|
|
- fix bugged airdate after "queue next" ✓
|
|
- collapsing playlist items hides pref and airtime by default. Airdate on same line as title, airtime and pref below ✓
|
|
- collapse/expand all playlist item button ✓
|
|
- close playlist button ✓
|
|
- basic ui fixes/tweaks ✓
|
|
- disabled !toke link embedding on emote alt text ✓
|
|
- fix chatbar resizing on new message notification (might just by cytube+) ✓
|
|
- relicense to agpl ✓
|
|
- disable/remove unregistered channels ✓
|
|
- fix fucked up bottom border on chat/video ✓
|
|
- rename "legacy playlist buttons" to compact, fix location. This seems like it could be usable if not better than default ✓
|
|
- get res/aspect ratio player.js ✓
|
|
- base.coffee ✓
|
|
- videojs.coffee(hls,videojs,raw-file,gdrive,rtmp) ✓
|
|
- dailymotion ~(this is kinda broken, likely not possible client-side without breaking CORS policy. This can wait until next version when an installation script including nginx and cors-proxy config gets added to support the catbox.moe image upload button which faces the same issue.
|
|
- vimeo ✓
|
|
|
|
- slide out panel (not an end user feature in and of itself, however a common UI element used for most menus, made to be quick and ezpz ✓
|
|
- function for opening, closing ✓
|
|
- allow switching menus on panel without having to open/close it ✓
|
|
- pretty slide out animation ✓
|
|
|
|
- improved poll UI ✓
|
|
- poll panel auto-opens when poll starts ✓
|
|
- button slides in chatbar from left, slides back after poll done ✓
|
|
- on click toggles poll ui on left of chat menu ✓
|
|
- improved poll chat announcements ~Original announcement removed. May implement once server whisper implemented.
|
|
|
|
- improved emote ui ✓
|
|
- slide out emote ui ✓
|
|
- search bar ✓
|
|
- optional alphabet sort(default) ✓
|
|
- optional legacy emote menu available ✓
|
|
|
|
- cytube+ ripout ✓
|
|
- scroll to current item button ✓
|
|
- orientation buttons in title bar ✓
|
|
- quick settings(icon next to emote button) ✓
|
|
- general pref
|
|
- theme ✓
|
|
- playback pref ✓
|
|
- video orientation ✓
|
|
- toggle orientation buttons ✓
|
|
- sync threshold (in seconds) ✓
|
|
- youtube source (add after degoogling) ~
|
|
- chat pref ✓
|
|
- use legacy cytube emote menu ✓
|
|
- blink title on chat ✓
|
|
- chat notification sound ✓
|
|
- chat desktop notification ✓
|
|
- show timestamps ✓
|
|
- show seconds ✓
|
|
|
|
- trim/tidy default cytube command ✓
|
|
- replace / with ! as defualt server-side command indicator to match tokebot and TTN commands. / will be used for future client-side commands ✓
|
|
- me ✓
|
|
- sp ✓
|
|
- afk ✓
|
|
- poll ✓
|
|
- hpoll ✓
|
|
- mute ✓
|
|
- smute ✓
|
|
- unmute ✓
|
|
- kick ✓
|
|
- ban ✓
|
|
- ipban ✓
|
|
- clear ✓
|
|
- clean ✓
|
|
- cleantitle ✓
|
|
- remove/consolidate/add to commands ✓
|
|
- say -> announce(change tokebot modflair CSS to announce CSS, make normal modflair for bot/admin rank) ✓
|
|
- modflair on announce ✓
|
|
- remove kickanons ✓
|
|
- remove d (drink) ✓
|
|
- add user specific function to clear ('!clear <username>' to clear chats by said user) ✓
|
|
|
|
- Merge Upstream to newest cytube commit ✓
|
|
|
|
- improved server-whisper system ✓
|
|
- public leave/join messages ✓
|
|
- server-whisper target parameter for user specific whispers ✓
|
|
- server-whisper name ✓
|
|
|
|
- flex layout/legacy layout ripout ✓
|
|
- rip out legacy layout system ✓
|
|
- chat/player sized to fit canvas with navbar (remove -+ buttons on player) ✓
|
|
- theatre mode toggle icon on title bar (hides navbar, player/chat takes up entire screen) ✓
|
|
- click to drag chat/player split ✓
|
|
- lock videowrap width to aspect ratio ✓
|
|
- lock on join ✓
|
|
- unlock on split drag ✓
|
|
- show lock button on unlock ✓
|
|
- hide lock button when locked ✓
|
|
- checklock/move split on window move ✓
|
|
- checklock/move split on video load ✓
|
|
- videojs.coffee(hls,videojs,raw-file,gdrive,rtmp) ✓
|
|
- dailymotion ✓
|
|
- vimeo ✓
|
|
- shade player ✓
|
|
- player controls in title bar when video shaded (play/pause, mute, current time/video duration), hidden when video open ✓
|
|
- minicont update in videojs ✓
|
|
- minicont update in dailymotion ✓
|
|
- minicont update in vimeo ✓
|
|
- shade chat (hide chat box, message box, send button. chat header bar collapses, retains user count and expansion arrows. Userlist/poll open/close is independent.) ✓
|
|
- scroll over mincont dir to scrub vid ✓
|
|
- scroll over minicont mutebtn to change vol ✓
|
|
- remove legacy cytube themes. If they wheren't compatible after the emote panel, they certainly won't be now lmao ✓
|
|
- fix bugs created by flex layout ✓
|
|
- fix fpanel width ✓
|
|
- fix portrait/mobile mode ✓
|
|
- fix user tooltip menu position ✓
|
|
|
|
- decaffeinate player.js ✓
|
|
- Coffee script was a bad idea then, and it makes even less sense now. ✓
|
|
- fuck me its just javascript with worse syntax, no real debugging tools, and build times ✓
|
|
- literally fucking why though?(I guess it made sense before ES6 but still fuck me) ✓
|
|
|
|
- degoogling ✓
|
|
- invidious api or yt-dlp backend for serverside metadata acquisition of youtube videos w/o registered API key or google account
|
|
- pull metadata for single video ✓
|
|
- pull metadata for playlist ✓
|
|
- search function ✓
|
|
- potentially leverage yt-dlp backend for other media sources X went with invidious. YT-DLP may make more sense for a total re-write in the future
|
|
- implement player.js updates into youtube.coffee
|
|
- latching ✓
|
|
- getres X Probably not possible without breaking cors policy. (same as DM)
|
|
- handleVideoSize on load ✓
|
|
- update minicont dur ~ updates with server tick, doesnt look as good as other sources, but YT embeds suck.
|
|
- update minicont buttons ✓
|
|
- invidious embed support for youtube video playback X not possible with current setup. Reqs either update to invidious allowing embed control, or a cors proxy(will look into this next update, or whenever installation script is created)
|
|
- invidious embed alternative: pull raw video link on vid start server side, serve to client ✓
|
|
- youtube source in user prefrences (raw link or official yt embed for now) ✓
|
|
|
|
- mod/admin panel
|
|
- button on chatbar ✓
|
|
- auto switch to admin panel ✓
|
|
- main panel
|
|
- poll creation ✓
|
|
- tools
|
|
- !announce button/field ✓
|
|
- !clear button w/ username dropdown ✓
|
|
- mod message (sends message to all active mods) ✓
|
|
- preferences ✓
|
|
- modflair ✓
|
|
- show modflair on chat header ✓
|
|
- show shadowmuted messages ✓
|
|
- show ips in tooltips ✓
|
|
- open playlist below video by default ✓
|
|
- nested menu
|
|
- new nested menu protoype object ✓
|
|
- playlist menu (just the playlist but in fpanel, currently one or the other) ✓
|
|
- move playlist between legacy area and fpanel on open/close ✓
|
|
- bugfixes ✓
|
|
- lock/unlock panel dissapears playlist (suicide by two shots to the back of the head) ✓
|
|
- fix scroll to item ✓
|
|
- fix scrolling while dragging pl item ✓
|
|
- autobump control menu
|
|
- tokebot control menu
|
|
|
|
- merge tokebot into ourfore.st codebase, one server instead of two.
|
|
- port chozobot code to cytube module ✓
|
|
- tokewhisper (server whisper, can optionally be displayed as PM client side) ✓
|
|
- load toke commands from tokes file ✓
|
|
- profile and userlist entry ✓
|
|
- disable certain options in profile context menu ✓
|
|
- mod commands ✓
|
|
- reset cooldown command (quiet and loud, quiet by default) ✓
|
|
- siteowner commands ✓
|
|
- reload tokes command ✓
|
|
- tokesay command ✓
|
|
- tokeannounce command ✓
|
|
- tokewhisper command ✓
|
|
- !r to rando-toke ✓
|
|
- log tokes w/ date to file. This will be consolidated to a better toke history in mariadb in a future update
|
|
- append [tokers],# of tokers,timestamp(epoch) on toke.
|
|
- tokefile, list of usernames with toke count. This should eventually be moved to a property of account or user
|
|
- json of map ["username", # of tokes] ✓
|
|
- load file on startup ✓
|
|
- update file every toke ✓
|
|
- total tokes listed on profile tooltip ✓
|
|
- send toke count with user and set toke count ✓
|
|
- display on tooltip ✓
|
|
- add toke to profile client side on toke(avoid sending information twice, write after tokes in tooltip) ✓
|
|
- include modflair on tokewhisper ✓
|
|
|
|
- autobump
|
|
- sepearate bump lists, based on js/txt files at first, will be stored in db next update (may use multiple at once)
|
|
- skip next bump/disable bumping
|
|
- bump frequency (default: 1)
|
|
- queue method: random from last-half, round-robin, full random
|
|
- override next bump
|
|
- require video be at least 4 minutes to add bump (mods can override from bump menu)
|
|
|
|
- finishing touches
|
|
- Critical Bug Fix: video sometimes unlatches if sync delayed on video start.(Fix pre-latch, if not duration check until sync is past 2s?)
|
|
- Critical Bug Fix: userlist profile & current connected users tooltips are currently broken ✓
|
|
- Critical Bug Fix: chat does not fill screen in portrait mode (video height being subtracted while video collapsed)
|
|
- Critical Bug Fix: make serverside commands case insensitive(May have been intentional with cytube, don't give a shit, it's a bug.)
|
|
- Critical Bug Fix: serverside commands trigger other commands with same letters (!announce triggers !a)
|
|
- Minor Bug Fix: hide "close playlist" button when playlist is in fpanel
|
|
- Minor Bug Fix: Execute serverside commands with whitespace before them while also sending them as normal chat to comform to tokebot behavior in (v1)Panama Red
|
|
- add scrollTo() on fpplaylist open
|
|
- save temporary vids to channel library
|
|
- getplaylistlinks outputs in fpanel
|
|
- display links
|
|
- pop mod nmenu
|
|
- css variables in theme for ez customizablity
|
|
- import data from old tokelog
|
|
- merge fore.st theme changes to fore.st dusk, consider moving some of them over to cytube.css for easier management
|
|
|
|
- extra shit(probs wait til next update, or hotfix)
|
|
- shared tokes across channels
|
|
- short chats (acronyms, emoji, single letters/numbers/symbols) pop in over video from left starting at top left, overflow pops in below, instead of in chat box. Chats slide back up into top of vid after 2s. (optional, default on)
|
|
- pop out btn
|
|
- basic profile page (in side panel)
|
|
- improved mod chat (dedicated pop out to access mod channel chat from any channel)
|
|
- user themes
|
|
- movie night theme
|
|
- tree house theme
|
|
- the network theme
|
|
- change background to other themes background or img from url(theme background by default)
|
|
- click and drag to resize fpanel
|
|
- native odysee support (no raw embed) (might save for 1.2)
|
|
- fix touch & drag to resize chat/video split on mobile/touch devices
|
|
- add player.js updates to twitch/embed/soundcloud
|
|
- latching
|
|
- getres
|
|
- update minicont dur
|
|
- update minicont buttons
|
|
- treez.one Now Playing in MOTD (these will need coordination with treez.one)
|
|
- treez.one tokebot syncronization (ESPECIALLY this one)
|
|
-
|
|
## License
|
|
Original fore.st code is provided under the Affero General Public License v3 in order to prevent fore.st being used in proprietary software.
|
|
(see the LICENSE file for the full text.)
|
|
|
|
Cytube source code originally licensed under MIT license
|
|
(see the LICENSE file for the full text.)
|
|
|
|
Bundled source code, such as third-party CSS and JavaScript libraries, are
|
|
provided under their respective licenses.
|