WebCord

A Discord and SpaceBar -based client implemented without Discord API.

MIT License

Stars
1.9K

Bot releases are visible (Hide)

WebCord - v4.1.0 – πŸŽ†οΈ Happy New Year πŸŽ‡οΈ!

Published by github-actions[bot] almost 2 years ago

  • Workaround a bug with desktopCapturer that caused crashes/SIGSEV on Wayland when trying to screen share (#328).
    • The workaround uses hard-coded source with most properties being empty and id set to screen:1:0.
    • It is very experimental, as it wasn't really tested with a lot of workflows/environments. It doesn't affect X11 users at all and is only applied when app is bundled with Electron 22+, so it shouldn't bring more troubles while giving a chance Wayland users will be able to screen share normally again.
    • Thank you, @JustPlainGarak and @mgonzalezg9, for giving me an idea to check for desktopCapturer.getSources(), without that issue ticket #328 could be left opened for a bit longer.
  • Refactor right-click context menu.
    • Hide copy / cut / paste entries if they're all greyed-out (#235).
    • Implement menu items for copying images / image links (#41).
  • Implement a button to copy a link from origin dialog popups (#140).
  • Implement new way of merging: typeMerge.
    • The goal of this merge strategy is to keep the type of the original object while deep merging contents. This should be more effective than deep merging first (and probably looping through object at least once) and comparing values later (another loop).
  • Try to optimize app with Chromium profiler (Node / main process only).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v4.0.0...v4.1.0

WebCord - v4.0.0

Published by github-actions[bot] almost 2 years ago

Breaking changes

These were also announced in v3.10.1, but reverted in v3.10.2.

  • Bump latest supported Electron to 20.x.y.
    • This is believed to break screen sharing on Wayland (#328), please downgrade to 3.10.2 for now if you need screen sharing and use Wayland.
    • This is confirmed to make tray invisible in some scenarios and some distributions (#330), either try to restart app (kill it with Task manager) when it happens or downgrade to 3.10.2.
  • Deprecate Electron 13.x.y, 14.x.y, 15.x.y and 16.x.y.
    • This also removes a lot of workarounds to make these versions functional with WebCord without any need to dealing with the types and experiencing some bugs fixed in newer Electron versions.
    • I might also slowly adapt the code for the newer DOM feature set, as e.g. Electron 13 seemed to support less CSS selectors. It probably won't change anything that much through other than breaking WebCord with those older Electron versions.

Other changes

  • Sync locales from Weblate project.
    • Update πŸ‡©πŸ‡ͺ️ German localization files by @Sir-Photch (#331).
    • Update πŸ‡ͺπŸ‡ΈοΈ Spanish localization files by @gallegonovato (#331,#336).
    • Update πŸ‡¦πŸ‡ͺ️ Arabic localization files by @Ali-x98 (#331).

Full changelog:

WebCord - v3.10.2

Published by github-actions[bot] almost 2 years ago

Note | This release was mostly introduced as a reply to recent breakages introduced by Electron. I plan to release WebCord v4.0.0 with Electron bump to 22.x.y as a breaking change to people's workflows. It is very likely it will deprecate v3 releases.

  • Revert Electron bump and older versions deprecation.
  • Improve --verbose flag implementation to also make Chromium engine log at verbose as maximum LOG() and VLOG() level and actually enable logs.
  • Multiple bug fixes with WinStateKeeper logic about detecting if window is still maximized or not.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.10.1...v3.10.2

WebCord - v3.10.1

Published by github-actions[bot] almost 2 years ago

  • Move WebSocket implementation to SpacingBat3/DisConnection.
    • This is made as a one of the changes to split WebCord into a few smaller modules.
  • Implement support for NODE_DEBUG and DEBUG env variables.
    • Both NODE_DEBUG and DEBUG will be set to * when --verbose flag is present in app's argv.
    • WebCord will also log its debug messages if NODE_DEBUG includes webcord as one of elements.
  • Improve algorithm that calculates and stores the window state.
    • Fix a bug where --start-minimized/-m flag could not work once app was closed maximized (#180).
    • Overall improve the logic used to determine how to store the application window.
  • Move to Electron 22.
    • This fixes upstream bugs on Linux: #49, #180, #226.
  • Bump minimal supported Electron version to 17.x.y.
    • Remove some workarounds used for older Electron versions.
  • Localize WebCord to πŸ‡¦πŸ‡ͺ️ Arabic by @Ali-x98 in #322.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.10.0...v3.10.1

WebCord - v3.10.0

Published by github-actions[bot] almost 2 years ago

  • UI fixes for smaller window sizes / screens.
    • Make settings sidebar hidden alongside channel sidebar.
    • Fix issues with popup positioning.
    • Limit size of popups to viewport width.
  • Update Electron Forge configuration.
    • Add Squirrel maker to Forge configuration.
    • Add universal arch to macOS jobs in GitHub workflows.
    • Add / modify other makers to make them enabled while packaging with WEBCORD_ALL_MAKERS enviroment variable set to true.
  • Update .eslintrc.
    • Cache ESLint results for faster linting.
    • Introduce basic naming convention to the source files.
    • Add some additional rules.
  • Improve some command-line flags.
    • More detailed information about current application version with --version flag.
    • Improve rendering of --help message and document some missing flags.
  • Update Readme.md by @4cecoder in https://github.com/SpacingBat3/WebCord/pull/305
  • Update πŸ‡·πŸ‡ΊοΈ Russian localization files by @dsrev in https://github.com/SpacingBat3/WebCord/pull/317

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.9.3...v3.10.0

WebCord - v3.9.3

Published by github-actions[bot] almost 2 years ago

  • Fix weird behaviour of Hide window to tray with the close button option (#306).
  • Refactor localization files loader class (L10N).
    • This make WebCord also load localizations from associated locales, giving higher chance to display still relevant localizations rather than fall back to English.
  • Refactor Content Security Policy class.
    • This changes a bit the purpose of this class – it should be only used when modifications are going to be made on the Content Security Policy, rather than replace the actual string which includes it.
    • This also makes the class value read-write, so it can be set and converted automatically to the proper format.
  • Add πŸ‡·πŸ‡ΊοΈ Russian localization files by @dsrev (https://github.com/SpacingBat3/WebCord/pull/308)
  • Try to sign macOS binaries with the default configuration.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.9.2...v3.9.3

WebCord - v3.9.2

Published by github-actions[bot] almost 2 years ago

  • Update πŸ‡ͺπŸ‡ΈοΈ Spanish localization files (thank you, @MrCoolAndroid).
  • Fix CSP for YouTube activity (#295).
  • Add WIX MSIs to Electron Forge.
    • Note: Currently, MSI format is experimental and might be reverted soon. It seems that wix-maker hasn't been designed to work multi-arch, so it might be reverted soon until that's going to be fixed.
  • Add setting to always close window on close button (#263).
  • Update marked to 4.2.1.
  • Update electron to 21.2.1.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.9.1...v3.9.2

WebCord - v3.9.1

Published by github-actions[bot] almost 2 years ago

Note | This is a fixup release for v3.9.0, with very little improvements done. For a list of full changes, see releases/v3.8.7.

  • Fix a bug which caused first argument passed to Electron not being parsed by WebCord.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.9.0...v3.9.1

WebCord - v3.9.0

Published by github-actions[bot] almost 2 years ago

Note | This version is focused on CSS injection in general, but also contains other changes.

  • Yet another logging functions fixes.
  • Fix a bug in CSS loader which caused app freeze due to infinite loop (#289).
    • Also mitigate further bugs by adding maxTries, which limits how many times app can retry after an error occurred in loop. Such loops might still occur through (at least there's no guarantees they won't), but that's less likely right now.
  • Add support for enabling window background transparency.
  • Improve events used for getting the right time in which scripts should be injected. Result of that is much smoother transition between WebCord's loading page and custom CSS themes.
  • Add support for injecting CSS themes to popup windows, both opened by Discord and WebCord (#297).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.8.8...v3.9.0

WebCord - v3.8.8

Published by github-actions[bot] about 2 years ago

Note | This is a fixup release for v3.8.7, with very little improvements done. For a list of full changes, see releases/v3.8.7.

  • Fix applying flags outside of list of WebCord's (#286).
  • Update @spacingbat3/kolor to 3.0.2.
  • Update @pkgjs/parseargs to 0.11.0.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.8.7...v3.8.8

WebCord - v3.8.7

Published by github-actions[bot] about 2 years ago

  • Fix random freezes somehow caused by logging functions.
  • Improve parsing the process.argv by either using a native util.parseArgs method or its polyfill (util.parseArgs is itself experimental, but I think it will be encouraged to use it on Node in the future, so the code itself is actually more future-proof).
    • The polyfill implementation is provided by @pkgjs/parseargs.
    • Currently, Electon does not include util.parseArgs in its API and that's likely because it isn't present in Node 16.
  • Use native fetch API if available in Node (Electron is currently at 16, so that API isn't available right now and electron-fetch will be used instead).
  • Fix some Spotify embeds using build/embeds-legacy.
  • Add some legacy code for older Electron versions.
    • WebCord is now confirmed to both run and build under Electron 13 (again).
  • Fix a crash / fatal Error that caused about window not to load.
  • Improve hiding some buttons in input box when window is small enough.
    • A visible change between older and newer implementation is that gift button is hidden as well.
  • Improve text generation in license dialog window to include some basic formatting.
  • Update Spanish and Norwegian BokmΓ₯l localization files.
    • Also configure Weblate so it will automatically remove blank localizations from the files (blank strings in localization files would just make WebCord to load blank text).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.8.6...v3.8.7

WebCord - v3.8.6

Published by github-actions[bot] about 2 years ago

Note | This is a fixup release for v3.8.5, with very little improvements done. For a list of full changes, see releases/v3.8.5.

  • Fix bug with a microphone caused by a duplicate requests sent without mediaType in Electron 21 (#275).
  • Improve logic of detecting unofficial Discord instances used for determining if tray icon should be changed.
  • Fix (in-promise, non-critical) Error when requesting the screen share if permission to it should be denied.
  • Update marked to 4.1.1.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.8.5...v3.8.6

WebCord - v3.8.5

Published by github-actions[bot] about 2 years ago

  • Bump Electron to 21.x.y.
  • Fix Spotify Embeds with built-in CSP turned on (#268).
  • Improve/fix experimental optimizations.
    • Add support for common GPU vendors.
    • Add generic optimizations for ARM boards without supported GPU (i.e. when Electron does not return any GPU as active and gives to it invalid vendor and device IDs).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.8.4...v3.8.5

WebCord - v3.8.4

Published by github-actions[bot] about 2 years ago

  • Update WebCord's branding.
  • Fix WebSocket Server not being able to handle any connections.
  • Improve documentation window rendering.
  • Improve tray menu implementation.
    • Move Toggle option to be first active element on Linux and macOS (#269).
  • Update Electron to 20.2.0.
  • Update πŸ‡΅πŸ‡ΉοΈ Portuguese localization files (by @KrulesExGamer in #259).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.8.3...v3.8.4

WebCord - v3.8.3

Published by github-actions[bot] about 2 years ago

Note | This is a fixup release for v3.8.2, with very little improvements done. For a list of full changes, see releases/v3.8.2.

  • Fix #255 caused by commit 4e1716ce666ea9a8b4039cd1fe6a651f26a8cab5.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.8.2...v3.8.3

WebCord - v3.8.2

Published by github-actions[bot] about 2 years ago

  • Fix rendering non-checkbox forms in the settings window. (#239)
    • I feel bad for the person who reported this: #248. This was the most unlucky result of this breakage that were possible.
  • Fix parsing new Discord's <title>.
    • It still includes some code for compatibility reasons (IDK if Discord's updates are locale-specific or not).
  • Block all stuff from /cdn-cgi endpoint.
    • It may or may not be a yet another script for tracing. From my tests it did not break anything when blocked and invisible.js looks there quite suspicious. Note: /cdn-cgi is blocked when user chooses to block either fingerprinting or tracing – I'm unsure how to categorise it right now.
  • Sync localization files with Weblate. (#241)

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.8.1...v3.8.2

WebCord - v3.8.1

Published by github-actions[bot] about 2 years ago

Note | This is patch release, with tiny fixes compared to v3.8.0. For changes between https://github.com/SpacingBat3/WebCord/compare/v3.7.1...v3.8.0, see releases/v3.8.0.

  • Fix missing icons in the releases.
  • Try to fix #237.
  • Update Electron version (20.1.0).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.8.0...v3.8.1

WebCord - v3.8.0

Published by github-actions[bot] about 2 years ago

  • Add support for redirecting to HTTP pages (#209).
  • Improve unhandled error... handling?
    • Provide an option to let application run even after it has crashed (so you can break it further :trollface:).
    • Do not let application crash when URLs in permission handlers are invalid (#217).
  • Use ECMAScript 2022 features in compiled code (e.g. class keyword for declaring classes).
  • Try to fix issues with comparing favicons with hashes.
    • Do not convert data URLs to native images.
    • Do not convert native images to platform-specific and quite varying bitmap format.
  • Improve rendering alert message boxes in documentation markdown parser.
  • Upload lock file with the source code for more reproducible builds.
  • Refactor WebSocket server implementation.
    • Close unsuccessful connections with appropriate message (to fix #225 on WebCord's side).
  • Make scrollbars more compact in WebCord's internal pages.
    • This might be one of the most controversial changes, therefore hearing opinions on that would be great; please use Discussions for that purpose and not the bug tracker.
  • Initial work on πŸ‡¬πŸ‡·οΈ Greek and πŸ‡ͺπŸ‡ΈοΈ Spanish localization files (#218).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.7.1...v3.8.0

WebCord - v3.7.1

Published by github-actions[bot] about 2 years ago

  • Fix screenshare with Electron 20.x.y (#216).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.7.0...v3.7.1

WebCord - v3.7.0

Published by github-actions[bot] about 2 years ago

  • Fix icon rendering on Windows and macOS
    • On macOS, tray icons are now rendered based on DPI:
      • 22px for 100%,
      • 33px for 150%,
      • 44px for 200%.
    • On Windows, tray icons are now rendered based on DPI:
      • 16px for 100%,
      • 24px for 150%,
      • 32px for 200%.
    • On both Windows and macOS, icon field in BrowserWindow class instances is left unset (it then uses icon from the executable).
    • Additionally, re-generated app.ico to include more sizes and updated Forge configuration to replace app.png with app.ico on Windows.
  • More accurate permissions handling representation.
    • WebCord will now use system-provided data to know whenever permission to specific media device is granted or revoked (Windows,macOS).
    • WebCord will now ask user on newer macOS devices to grant permissions to specific media element when Discord ask for it (#176).
  • Encrypt configuration files using safeStorage API.
    • On Windows and Linux, it may just only encrypt windowState.json and leave config.json unencrypted due to API limitations.
    • Additionally on Linux, encryption may not be available if secret key is not available (so you probably need any secret service provider installed in order for encryption to work).
    • On macOS, according to docs, there's no limitation that requires Electron to wait for Chromium to initialize in order to encrypt data, so full encryption (config.json+windowState.json) might be possible to achieve (currently that's untested).
  • Harden webPreferences policies for main window's child windows.
  • Bump Electron major version (it is now on 20.x.y).
  • Add πŸ‡«πŸ‡·οΈ French localization files made by @HeavnWolf (#210).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.6.0...v3.7.0