diff --git a/patchnotes.md b/patchnotes.md new file mode 100644 index 00000000..457a1a11 --- /dev/null +++ b/patchnotes.md @@ -0,0 +1,380 @@ +dev checklist/full patch notes 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 ' 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 + +- 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 + - mod + - reset cooldown button + - admin + - reload tokes btn + - tokewhisper filed+btn + - tokesay field+btn + - tokeannounce field+btn + +- 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 + - reset toke cooldown every hour at *:19:30 for 4:20 !tokes + - extend toke until *:20:00 if it ends after *:19:30 but before *:20:00 + +- autobump + - Serverside + - Bump Management System + - bump object: name, user(person who made bump, optional), lowername, resettoke bool, id, listname, media item + - bumplist object: name, lowername, bump array + - addBump function for adding bumps to list + - deleteBump function for removing bumps from list + - saveList function for saving list to file + - pack/send lists to mods on start and request + - test callback(dumps bumplist to dev console) + - loadList for re-creating object from file + - loadLists for re-creating objects based on all files in bumps/ folder + - Automated Bump Queueing + - base queueing function + - queue bump next + - call from socket + - Active lists + - map of active lists + - add/remove from active lists callback + - list selection method + - smashList + - randomList + - bump selection method: random from last-half, round-robin, full random + - round-robin + - full random + - last-half random + - Set bump/list sel method from packet + -Auto Queue Bump(s) + - agro: passive + - all auto-bumping features disabled + - agro: min + - Auto-clear old/skipped bumps + - after non-bump vid starts if next item is not bump + - if there is nothing queued before/after current item (bump or not) + - agro: mid + - when non-bump vid is added and there are bumps queued next, move new item after the bump block + - notify modules on video add + - agro: max + - when a non-bump vid is moved before or inbetween next bump block, move it after the bump block + - notify modules on video move + - set agro from packet + - dedicated method for automated queueing based on current settings + - bump frequency (default: 1,3) + - base setting + - set from packet + - minimum length to bump (default: 240 sec) + - base setting + - set from packet + - per-channel config files in bumps/config/.conf, loaded on channel startup for persistent settings(move to db by next major update) + - json object with following values + - active lists + - agro level + - bump frequency + - bump selmed + - list selmed + - min length to bump + - Add manual only property to bump object(default false). + - add boolean to obj + - add to handleAddBump & its type + - add to packlist + - do not autoQueue bumps with manualOnly set to true + - round-robin + - full random + - last-half random + - Change packList to send history as array of arrays ([[lname,id],[lname,id]]) + - double check perms(all actions should be at least mod+ only) + - reset tokebot when tokebump is played + - Additions/Changes for Clientside + - send list function + - send deleted list name function + - send hist function + - send config function + - send list to all mods on list save + - send deleted list names to all mods on list deletion + - send config to all mods on config save + - send history to all mods when item added to history + - Save list filename as lowername + - Only load lists with filenames that end in .bump + - renameBump socket binding + - changeCreator socket binding + - renameList socket binding + - Store config/lists on sendBumplists callback + - Clientside + - Auto update panel on config/bumplist change from other mod/admin while open + - General Config + - Agro Level + - Bump Frequency + - Minimum Duration + - Bump Selection Method + - List Selection Method + - Bump/List Management + - Add Bump + - Add List + - Lists + - Create function to display/edit bumps inside of array + - bump title + - rename + - media title + - manual only + - toggle + - rtoke + - toggle + - duration + - user + - rename + - CSS + - Show Bump Controls Boolean + - Queue Next + - Delete Bump + - Create function to display array of bumplists + - Toggle Active + - Move Add Bump + - Delete Bumplist + - Rename Bumplist + - Display Bumplist + - CSS + - Active Lists (expanded) + - All Lists (collapsed) + - Play History (collapsed) + +- finishing touches + - Critical Bug Fixes + - video sometimes unlatches if sync delayed on video start.(Fix pre-latch, if not duration check until sync is past 2s?) + - userlist profile & current connected users tooltips are currently broken + - chat does not fill screen in portrait mode (video height being subtracted while video collapsed) + - make serverside commands case insensitive(May have been intentional with cytube, don't give a shit, it's a bug.) + - fix playlist errors in fpanel + - Sanitize input for invidious search + - Check and Sanitize input for Tokebot commands + - Check and Sanitize input from autobump panel + - newBump + - deleteBump + - renameBump + - changeCreator + - newBumplist + - delBumplist + - renameBumplist + - setActive + - removeActive + - queueBump + - check/fix: make sure we use internal flags instead of matching strings for function calls from autobump to playlist + - Minor Bug Fixes + - hide "close playlist" button when playlist is in fpanel + - fix fpanel not resizing on video expand/collapse + - fix playlist resizing (both window resize, and video collapse/expand) in fpanel + - Execute serverside commands with whitespace before them while also sending them as normal chat to comform to tokebot behavior in (v1)Panama Red + - disable pm send to tokebot + - dont open playlist if legacy playlist disabled(on perm change) + - remove tokebot from !clear dropdown in mod panel + - add bump to end of block current bump block + - don't collapse/unscroll expanded bumplists when reloading bump panel + - getBumplists when values are undefined at bump panel launch (should only happen on server startup anywho) + - put autobump in container div to keep elements from under nested menu buttons + - fix "toke em' all" autocompletion cache (it currently saves all commands instead of just !tokes) + - only include command when repeating toke msg + - Optimization/Refactor + - Change join/leave message prefix/postfix to single string with replacable user token instead of two vars + - Cytube Feature Changes + - save temporary vids to channel library + - disable playlist scroll + - override param for calling from btn + - Extras + - call scrollTo(true) on fpplaylist open + - getplaylistlinks outputs media objects to fpexport + - pop mod nmenu + - export as human readable + - export as .json + - export as .csv + - export as DB format + - accept invidious links as youtube links + - disable in mod menu + - allow user to set minimum chat width when locked to aspect + - new bumplist from queue (same as clonePlaylist for creating playlists from queue) + - Create bumplist from queue button + - css variables in theme for ez customizablity + - merge fore.st theme changes to fore.st dusk, consider moving some of them over to cytube.css for easier management + - create neon theme (dusk with dawn accents) + - create theme(s) with no blur