$ git clone https://tcclient.ion.nu/tc_client.git

(HEAD) Diff Tree tinychat: handle the new endpoint value.

Diff Tree Added support for the tinychat beta commands sysmsg and yut_play (start youtube video)
Diff Tree If joining a tinychat beta channel when the client was built without support for it (requires libwebsocket, json-c), print a warning and continue connecting on RTMP.
Diff Tree Automatically use tinychat_beta for beta channels.
Diff Tree Added missing copyright notice for client.h
Diff Tree Added some basic support for tinychat beta (-s/--site tinychat_beta)
Diff Tree Use curl's curl_easy_unescape() for from_owner notices instead of doing it ourselves (contributed by Aida)
Diff Tree tc_client-gtk: added a webkitview for solving captchas without an external browser.
Diff Tree Bugfix: use //IGNORE to skip characters instead of freezing if the locale can't represent them.
Diff Tree tc_client-gtk: use pulseaudio for incoming audio if it's available (preferred over libao) and display the volume indicator even if no audio playback library is available.
Diff Tree tc_client-gtk: made the automatic brightness postprocessing adjustment gradual.
Diff Tree Workaround for the new captcha mechanism.
Diff Tree Bugfix: return -1 as socket if connectto() fails.
Diff Tree tc_client-gtk: fixed segfault at exit by doing camera cleanup earlier.
Diff Tree tc_client-gtk: use /quit to guarantee a clean exit.
Diff Tree Added a /quit command.
Diff Tree irchack: forgot to remove a line that wasn't meant to be committed.
Diff Tree irchack: don't rely on connection ID.
Diff Tree When getting site and channel from a URL, ignore anything after a slash after the channel name.
Diff Tree Bugfix: exit with non-zero status if connection fails.
Diff Tree tc_client-gtk: fixed some memory leaks.
Diff Tree Added workaround in the RTMP acknowledgement code for when 4 gigabytes of data has been sent and the 32bit integer rolls around to 0.
Diff Tree Adjusted tinychat account support for the latest compatibility-breaking changes.
Diff Tree Call curl_easy_cleanup() at the end of the session to make sure cookies get written.
Diff Tree tc_client-gtk: fixed a race-condition in the builtin video player.
Diff Tree modbot: added an option (--no-unapproved) to not add any unapproved videos to queue (videos still get approved by mods requesting or playing them manually)
Diff Tree modbot: use https instead of http and use the tcclient subdomain since some DNSes have trouble with underscores.
Diff Tree Fixed tinychat account support.
Diff Tree Don't bother trying to verify certificates on windows (lacking a ca bundle)
Diff Tree Cleaned up no-longer-needed headers in client.c
Diff Tree Small bugfix regarding outgoing streams.
Diff Tree Added some basic support for kageshi (using the -s/--site option)
Diff Tree Improved RTMP compatibility by responding to RTMP ping requests and always starting new chunk streams with a format 0 packet.
Diff Tree Use tinychat.com instead of apl.tinychat.com (works around SSL/TLS issues on windows)
Diff Tree Version 0.41
Diff Tree tc_client-gtk: made camera scaling keep the aspect ratio.
Diff Tree dist/w32.sh: fixed the path for the escapi library.
Diff Tree tc_client-gtk: implemented broadcasting to greenroom while awaiting approval.
Diff Tree Added notification for receiving a valid broadcast password.
Diff Tree tc_client-gtk: added an option to show the greenroom menu even when you're not a moderator.
Diff Tree tc_client-gtk: added support for viewing and approving greenroom cameras.
Diff Tree Basic support for greenroom channels.
Diff Tree dist/w32.sh: bundle Adwaita icons and gdk-pixbuf loaders.
Diff Tree tc_client-gtk: made the user list sorted.
Diff Tree tc_client-gtk: added an option to hide join/quit/nickname notifications.
Diff Tree tc_client-gtk: disable the input field and the broadcast menu when in "lurker" mode.
Diff Tree Notify if the captcha was not completed and tinychat puts our session in "lurker" mode.
Diff Tree More fixes for compiling in a separate directory.
Diff Tree tc_client-gtk: added an icon to mark moderators in the user list.
Diff Tree tc_client-gtk: bugfix: hiding your own camera caused a segfault.
Diff Tree tc_client-gtk: tweaks for windows compatibility.
Diff Tree configure: skip looking for libraries used for the GUI applications when building on msys.
Diff Tree tc_client-gtk: build fixes for windows.
Diff Tree tc_client-gtk: compatibility with older versions of libavformat.
Diff Tree Buildsystem fixes.
Diff Tree Fixes for compiling in a separate directory.
Diff Tree tc_client-gtk: added support for integrated youtube videos.
Diff Tree tc_client-gtk: added a setting to control /disablesnapshots and /enablesnapshots.
Diff Tree irchack: pass along " cammed up" notifications.
Diff Tree tc_client-gtk: display the channel name in the window title.
Diff Tree tc_client-gtk: rewrote the audio mixer.
Diff Tree tc_client-gtk: handle failure to connect to pulseaudio more gracefully.
Diff Tree tc_client-gtk: added volume indicators.
Diff Tree Added a /disablesnapshots command to disable capturing outgoing cams for the flash client's "snapshot" feature, /enablesnapshots to re-enable.
Diff Tree Enabled compiling in a directory separate from the source directory.
Diff Tree Added some compatibility code for OSX.
Diff Tree tc_client-gtk: added options for making links blue and how to wrap lines.
Diff Tree libcamera(escapi): handle failure to open camera more gracefully.
Diff Tree tc_client-gtk: mark outgoing video keyframes as keyframes.
Diff Tree tc_client-gtk: install the camera placeholder animation for the 'install' target.
Diff Tree dist/appimage.sh: fix audio in appimages by building ffmpeg with support for nellymoser and speex, and depending on the system's libao and libpulse instead of including it in the appimage.
Diff Tree tc_client-gtk: bugfix: don't rely on stack allocated variables for GUI callbacks.
Diff Tree Version 0.40
Diff Tree tc_client-gtk: moved some non-GUI code back.
Diff Tree tc_client-gtk: fixed building without pulseaudio.
Diff Tree tc_client-gtk: fixed printf formatting.
Diff Tree tc_client-gtk: moved some GUI code into gui.c, including all of the GUI initialization.
Diff Tree tc_client-gtk: bugfix: close the camera device when cancelling cam selection.
Diff Tree tc_client-gtk: make scrolling with page up and page down work even if focus is on the input field.
Diff Tree Added scripts for generating binary packages on GNU/Linux and windows.
Diff Tree tc_client-gtk: quit if the captcha window is closed.
Diff Tree tc_client-gtk: fixed some warnings found with G_DEBUG="fatal-criticals".
Diff Tree tc_client-gtk: added support for broadcasting audio.
Diff Tree libcamera(escapi): fixed a bug that broke cams on windows unless you only use the first one.
Diff Tree Added support for sending audio packets with "/audio ", followed by the binary data.
Diff Tree Fixed a bug that caused tc_client to not know the nickname if the chosen one wasn't available at startup, manifesting as broadcasting not working unless the initial nickname was free.
Diff Tree libcamera: added support for a virtual X11 camera.
Diff Tree tc_client-gtk: added workaround for libao not handling the "client_name" option on windows.
Diff Tree tc_client-gtk: added compatibility code for windows' lack of pipe()
Diff Tree camviewer: removed the old, buggy audio code.
Diff Tree tc_client-gtk: added GTK+2 compatibility code related to the greenscreen camera color picker.
Diff Tree testbuilds.sh: adjusted for configure no longer accepting --enable-mic (since it's no longer experimental)
Diff Tree tc_client-gtk: fixed resampling of incoming audio.
Diff Tree tc_client-gtk: added a compatibility macro for versions of gdk-pixbuf lacking gdk_pixbuf_read_pixels()
Diff Tree tc_client-gtk: added an option to pick the greenscreen "green" color from the camera.
Diff Tree tc_client-gtk: stop trying to send video data if our media stream was closed.
Diff Tree Interpret the "from_owner" subcommand "_close" to tell if our media stream was closed.
Diff Tree Improved the RTMP acknowledgement code: counting the format 3 headers which were previously skipped, setting a more reasonable acknowledgement interval at startup and giving the server some margin before dropping outgoing video packets.
Diff Tree tc_client-gtk: when keeping HTTP cookies, use separate cookies per account and one for no account to avoid serverside issues.
Diff Tree tc_client-gtk: reimplemented automatic scrolling using a state to keep track of whether the GtkTextView is scrolled to the bottom and using gtk_text_view_scroll_to_mark() to scroll.
Diff Tree tc_client-gtk: turn URLs mentioned in chat into clickable links.
Diff Tree libcamera(v4l2): cache the frame and if there is no data to be read, return the cache instead of blocking.
Diff Tree tc_client-gtk: changed the greenscreen postprocessor to use libcamera for the background, allowing you to use either another camera or an image through the virtual "Image" camera as background.
Diff Tree tc_client-gtk: cleaned up leftover windows compatibility code that is no longer necessary.
Diff Tree tc_client-gtk: use the camera's own copy of its ID for g_timeout_add() rather than what camera_new() was called with. And in configure, include libavutil/mem.h if we fall back on av_freep()
Diff Tree tc_client-gtk: changed camera input for broadcasting from using a thread to using g_timeout.
Diff Tree tc_client-gtk: added GTK+2 compatibility code related to the greenscreen postprocessor.
Diff Tree Moved the backward compatibility code for avcodec_{send,receive}_{frame,packet} into a separate source file to avoid pulling libavcodec into utilities that don't use it.
Diff Tree tc_client-gtk and camviewer: updated to libavcodec's avcodec_{send,receive}_{frame,packet} API.
Diff Tree tc_client-gtk: added greenscreen postprocessor.
Diff Tree tc_client-gtk: moved the postprocessing code into its own source file.
Diff Tree tc_client-gtk: merged camera_remove() and camera_removebynick() into a single function, merged the deallocation of camera data into camera_free()
Diff Tree Version 0.39
Diff Tree Added missing generated files to the clean target.
Diff Tree tc_client-gtk: print the topic and /whois responses to the GUI.
Diff Tree testbuilds.sh: adapted to the changes in configure and made it check if builds succeed without -Werror rather than unforgivingly marking it as broken, instead marking it as working but with warnings.
Diff Tree tc_client-gtk: added GTK+2 compatibility code for the incompatibilities that have been introduced over time.
Diff Tree tc_client-gtk: added a placeholder animation for cameras, shown for audio-only streams and streams that haven't sent any video data yet.
Diff Tree bugfix: fixed compatibility code that had stopped working over time as other code changed.
Diff Tree tc_client-gtk: optimized incoming audio/video by checking for "Video:" and "Audio:" first when handling lines from the tc_client core.
Diff Tree tc_client-gtk: if the server disconnects, print the notification and stop any outgoing broadcast.
Diff Tree tc_client-gtk: prevent new PM tabs from stopping automatic scrolling.
Diff Tree bugfix: tc_client-gtk: when rearranging cameras, don't try to remove it from the parent container if the camera doesn't have one yet.
Diff Tree tc_client-gtk: un-highlight selected PM tabs even if the sender has left.
Diff Tree tc_client-gtk and camviewer: don't try to play audio if the resampling failed (experimental mic support)
Diff Tree tc_client-gtk: break the cameras into two or more rows if it means they can be larger and still fit.
Diff Tree bugfix: take cflags into account when performing API tests in configure.
Diff Tree tc_client-gtk and camviewer: specify a scaling algorithm for libswscale (mandatory for older versions of libswscale)
Diff Tree Reorganized configure, changing many of the version comparisons for API compatibility into direct checks for availability.
Diff Tree tc_client-gtk: when resizing the window, resize the camera pane before the chat pane.
Diff Tree tc_client-gtk: limit the camera preview to 640 by 480, scaling down if the input is larger.
Diff Tree Missing changes from previous commit.
Diff Tree Fixed RTMP extended timestamps (read extended timestamps for subsequent format 3 chunks with the same chunk ID)
Diff Tree Implemented RTMP acknowledgement on outgoing data, with dropping video packets if necessary.
Diff Tree Use uintX_t for endianness functions instead of unsigned long*x int.
Diff Tree bugfix: brought back announcing when a cam stream ends.
Diff Tree tc_client-gtk: added menu item to hide a camera upon right-click.
Diff Tree tc_client-gtk: when automatically opening cameras is disabled don't open the ones that are active when joining either, and notify when someone cams up.
Diff Tree Added a /closecam command to stop receiving a cam stream.
Diff Tree irchack: fixed the order of messages around joining a channel (should fix compatibility with IRC clients a bit pickier than irssi)
Diff Tree tc_client-gtk: added an option to use the --cookies parameter of the core to keep/reuse HTTP cookies.
Diff Tree tc_client-gtk: made the settings accessible from the start window (previously only accessible from the main window, after already joining a channel)
Diff Tree tc_client-gtk and camviewer: added compatibility fallbacks for av_image_get_buffer_size() and av_packet_unref()
Diff Tree libcamera(v4l2): if we failed to read the frame, give grey instead.
Diff Tree tc_client-gtk: if we failed to open the camera, just give a grey screen.
Diff Tree tc_client-gtk: reallocate frame when camera input size changes.
Diff Tree tc_client-gtk: bugfix: set the state of the checkboxes for horizontal and vertical flip when opening the colors/postprocessing window.
Diff Tree tc_client-gtk: added horizontal and vertical flip as postprocessing options.
Diff Tree tc_client-gtk: moved encoding out of the cam thread, allowing postprocessing to be applied to the broadcasted frame.
Diff Tree tc_client-gtk: added postprocessing options for cams upon right-click, starting with brightness adjustment.
Diff Tree tc_client-gtk and camviewer: fixed compatibility with newer libavutil.
Diff Tree tc_client-gtk: handle only one sendmessage event at a time, and don't send empty lines.
Diff Tree modbot: only use youtube-dl's 'ytsearch:' for --get-id, and only if it doesn't appear to be an ID already.
Diff Tree Version 0.38
Diff Tree modbot: when getting information about a video, make up to 3 attempts before giving up (workaround for youtube/youtube-dl issues)
Diff Tree tc_client-gtk: format timestamps in logs.
Diff Tree modbot: if requesting by URL, skip to the ID.
Diff Tree Added option --cookies to keep and reuse tinychat HTTP cookies, resulting in having to solve captchas less often.
Diff Tree Always use format 0 (all fields included) for the first RTMP packet.
Diff Tree Added compatibility code for systems lacking strndup() and made configure test for that and dprintf()
Diff Tree Remove glade properties added by mistake.
Diff Tree tc_client-gtk: fixed a memory leak.
Diff Tree tc_client-gtk: pass --hexcolors to tc_client on windows too.
Diff Tree tc_client-gtk: keep cam pixel buffers on the heap instead of the stack, fixes glitchyness when resizing.
Diff Tree Fixed compatibility with GTK+2 in the input history feature
Diff Tree tc_client-gtk: use --hexcolors to show the full range of colors.
Diff Tree Added option --hexcolors to print hex color codes instead of ANSI color escape codes.
Diff Tree tc_client-gtk: set a default position of the cam and nickname list pane handles.
Diff Tree Fixed a bug in the code for handling newlines in incoming messages.
Diff Tree tc_client-gtk: added input history (up/down arrows)
Diff Tree Makefile: added some foolproofing for building on windows.
Diff Tree configure: check for multiple versions of ncurses.
Diff Tree tc_client-gtk: windows compat: do /mbs handling on a duplicated buffer to avoid cutting off the displayed message.
Diff Tree modbot: use youtube-dl's 'ytsearch:' instead of '--default-search auto', fixes issues with search terms that include slashes.
Diff Tree Handle multi-line messages.
Diff Tree tc_client-gtk: initialize audio samples of new cams to 0 (experimental audio support)
Diff Tree tc_client-gtk: added option to change font size in the chat.
Diff Tree tc_client-gtk: make timestamps gray and nicknames bold.
Diff Tree tc_client-gtk: windows compat: don't try to run empty commands.
Diff Tree tc_client-gtk: if HOME is not set use "." instead.
Diff Tree Makefile: added missing sourcefiles for the tarball target.
Diff Tree Version 0.37
Diff Tree modbot: if nothing is playing when a video gets approved, play it even if it's not first in the queue.
Diff Tree configure/Makefile: added a summary of utilities and features enabled/available at the end of configure (or manually with 'make confinfo')
Diff Tree testbuilds.sh: added a warning to prevent users from trying to use it to test their build, which is not what it does.
Diff Tree tc_client-gtk: made automatically opening cam streams an option which can be disabled.
Diff Tree Minor build fixes.
Diff Tree libcamera: added support for cameras on windows through the ESCAPI library.
Diff Tree libcamera: fixed compiler warnings.
Diff Tree tc_client-gtk: added workarounds for the camera code (with the platform-agnostic "Image" camera) to work on windows.
Diff Tree libcamera: added support for a virtual "Image" camera.
Diff Tree Reimplemented announcement of people cammed up when joining.
Diff Tree Reimplemented announcement of moderators.
Diff Tree Version 0.36
Diff Tree Adjusted for tinychat's protocol changes.
Diff Tree Adjusted for tinychat's new format of the 'join' AMF0 command.
Diff Tree tc_client-gtk: added an option to automatically cam down when someone joins ("Shy mode")
Diff Tree irchack: changed WHOIS to use the new /whois command instead of /userinfo (which tinychat retired)
Diff Tree Changed the /whois output to be more human-readable in cases where the user isn't logged in.
Diff Tree Implemented /whois to check someone's username.
Diff Tree modbot: when skipping an unapproved video after 2 minutes, find the next approved video when it's time to play it (in case the queue has changed)
Diff Tree modbot: check that videos can be embedded (for the flash client) before adding them to the queue.
Diff Tree modbot: added support for /mbpa (pause) and /mbpl (play/resume)
Diff Tree modbot: take time offset into account for the duration of videos.
Diff Tree Version 0.35
Diff Tree modbot: added support for youtube links with time offsets.
Diff Tree tc_client-gtk: flush logs after every write to avoid loss of data.
Diff Tree tc_client-gtk: changed how pane handles are set to be wide to be compatible with older gtk+ versions.
Diff Tree irchack: respond to pings while waiting for the captcha.
Diff Tree tc_client-gtk: made the pane handles between cams, chat, and userlist wide (contributed by David Kreuter)
Diff Tree cursedchat: added support for captchas.
Diff Tree irchack: added support for captchas.
Diff Tree tc_client-gtk and camviewer: added support for captchas
Diff Tree Added support for captchas.
Diff Tree If an RTMP chunk already has a buffer allocated when a packet sets the length, free it and start over.
Diff Tree Send account username in AMF0 "connect" command at startup regardless of whether we are modded or not, as is now required for non-mod accounts (contributed by Jade)
Diff Tree irchack: added a check for whether tc_client is installed or should be run from the source directory (should have been added along with the 'install' target)
Diff Tree Adjusted for tinychat authentication changes (both for joining the channel and to use moderator accounts)
Diff Tree Version 0.34
Diff Tree tc_client-gtk: fixed gtk+2 compatibility (differences in gtk_combo_box API)
Diff Tree tc_client-gtk: added a camera selection (and preview) window when starting to broadcast.
Diff Tree tc_client-gtk and camviewer: added an abstraction library (libcamera) for cam access.
Diff Tree modbot: give feedback for !wrongrequest, and if the user is a mod and the dropped video was the last one approved, remove it from goodvids since it was probably requested (and automatically approved) by accident.
Diff Tree modbot: make a note about skipped videos (!skip) not being marked as bad, and list the skipped videos to make it easier if they were meant to be marked as bad.
Diff Tree modbot: added an option (--disable-lists) to disable playlist requests, instead only the first video linked to will be added to the queue.
Diff Tree Flush stdout after printing unknown RTMP types, and return upon <1 reads in b_read.
Diff Tree Print version info when called with -v/--version (contributed by Jade)
Diff Tree Fixed memory alignment in rtmp/amf code (for CPU architectures that are picky about it)
Diff Tree tc_client-gtk and camviewer: added some compatibility macros for older libav versions.
Diff Tree tc_client-gtk: fixed windows compatibility (w32_runcmd and strndup)
Diff Tree Version 0.33
Diff Tree tc_client-gtk: put the GtkTextViews for PM tabs in GtkScrolledWindows for compatibility with GTK+2.
Diff Tree tc_client-gtk: added tabs for PMs.
Diff Tree modbot: added a !queue command to get information about the video in the given position in the queue.
Diff Tree Added a /version remote command to give the client name and version number, making /userinfo conform to the flash client's behaviour instead, and send the response with the two separate privacy field options 'n' and 'b'.
Diff Tree tc_client-gtk: if there are no saved channels, show a placeholder text instructing how to add a channel.
Diff Tree tc_client-gtk: made the options for notifications and youtube videos work for windows.
Diff Tree tc_client-gtk and camviewer: added compatibility code to build on windows (for now the tc_client core still needs to be built with cygwin for windows)
Diff Tree Fixed the /forgive command (by name) which would previously fail unless the target was found in the first 'banlist' AMF0 packet.
Diff Tree tc_client-gtk: redesigned the startup window to better support frequenting multiple channels.
Diff Tree modbot: fixed finding the duration of videos longer than 59 minutes (conversion from hh:mm:ss format to seconds)
Diff Tree Version 0.32
Diff Tree modbot: added a !nowplaying command to get the title of the current video.
Diff Tree modbot: make sure we don't skip over an unapproved video in queue before the 2 minutes are up.
Diff Tree Provide feedback on the /ban command.
Diff Tree modbot: for !badvid, only play the next video if the one we marked as bad was the currently playing video.
Diff Tree tc_client-gtk: send the cam stream to tc_client from the main process instead of from the cam child process to avoid potential overlap of writes.
Diff Tree tc_client-gtk: when camming down, remove the glib event source for our cam stream.
Diff Tree Added an 'install' make target, adjusted utilities to run tc_client from PATH unless they were run from the build directory (i.e. './')
Diff Tree tc_client-gtk: ignore anything after the offset in /mbs commands (and don't leave zombie children around)
Diff Tree irchack: send passwords by pipe, not argument.
Diff Tree Version 0.31
Diff Tree irchack: translate topic and ban/banlist commands.
Diff Tree tc_client-gtk and camviewer: fixed the code for fallback on libswresample.
Diff Tree When a message is sent with a privacy field, send it once with 'b' (broadcasting) and once with 'n' (not-broadcasting)
Diff Tree modbot: include the video title at the end of the /mbs command, which doesn't affect the flash client but lets e.g. tc_client users know which video is being played.
Diff Tree modbot: document !skip in commands.html
Diff Tree cursedchat: copied and adjusted the code for keeping track of our own text color from tc_client-gtk.
Diff Tree tc_client-gtk: copied and adjusted the code for keeping track of our own nickname from cursedchat.
Diff Tree Fixed the issue where messages would show up on kanji on some platforms (a proper fix instead of the earlier android & apple workaround)
Diff Tree Added a little note about the video being pre-approved when requesting an already approved video.
Diff Tree Added .gitignore to ignore object files and final executables
Diff Tree tc_client-gtk: added a margin to the autoscroll code, which should make scrolling work better when resizing the window or panes.
Diff Tree Removed files which were moved throughout the versions but where the originals were apparently not automatically removed in the import process.
Diff Tree Version 0.30
Diff Tree Version 0.29
Diff Tree Version 0.28
Diff Tree Version 0.27
Diff Tree Version 0.26
Diff Tree Version 0.25
Diff Tree Version 0.24
Diff Tree Version 0.23
Diff Tree Version 0.22
Diff Tree Version 0.21
Diff Tree Version 0.20
Diff Tree Version 0.19
Diff Tree Version 0.18
Diff Tree Version 0.17
Diff Tree Version 0.16
Diff Tree Version 0.15
Diff Tree Version 0.14
Diff Tree Version 0.13
Diff Tree Version 0.12
Diff Tree Version 0.11
Diff Tree Version 0.10
Diff Tree Version 0.9
Diff Tree Version 0.8
Diff Tree Version 0.7
Diff Tree Version 0.6
Diff Tree Version 0.5
Diff Tree Version 0.4
Diff Tree Version 0.3
Diff Tree Version 0.2
Diff Tree Version 0.1