Skip to content

Releases: Quixomatic/RollcallBot

v1.0.30

Choose a tag to compare

@Quixomatic Quixomatic released this 01 Oct 00:28

Added

  • /silence command to make a member read-only without a visible timeout. /silence setup creates a rollcall-silenced role and denies it every send, react, thread, voice, invite and app permission on every category and channel, leaving View Channel and Read Message History untouched. It is safe to re-run and reports any channels it could not update. /silence user, /silence remove and /silence list assign, remove and list the role. After silencing, the bot reports any channel where another role's allow overwrite still lets the member post, react or join voice, and it refuses to silence administrators, since they bypass channel permissions.
  • New channels automatically get the silence role's deny overwrite when created.
  • README section on refreshing an expired Meetup session with src/export-session.js.

Notes

  • /silence needs the bot to have Manage Roles plus every permission it denies, because Discord only lets a bot deny permissions it holds itself. See the README for the full list.

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.30

v1.0.29

Choose a tag to compare

@Quixomatic Quixomatic released this 19 Aug 17:57

Fixed

  • Events wrongly marked cancelled can now recover. upsertEvent clears is_cancelled when an event reappears in a scrape. Previously the flag was permanent: an event only reaches the upsert because it was present in the scrape, but nothing ever reset the flag, so a wrongly cancelled event stayed hidden from every query forever and the only recovery was wiping the database.
  • A scrape that returns zero events no longer cancels the entire events table. detectEventChanges treats an empty result as a failed scrape (selector miss, popup over the listing, half-expired session that still passes isLoggedIn()) and skips cancellation detection instead of flagging every stored event at once.

Changed

  • Cancellation detection now logs what it flagged and why, including the scrape count it based the decision on, so a mass cancellation is visible in the logs instead of silent.

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.29

v1.0.28

Choose a tag to compare

@Quixomatic Quixomatic released this 18 Aug 16:02

Added

  • src/export-session.js — export a Playwright storageState from a real, human-driven Chrome window over the DevTools protocol. The Meetup auth cookies are httpOnly and therefore invisible to document.cookie, so CDP is the only way to capture them from a normal browser. Log in with real Chrome (where the captcha behaves), dump the session, copy the file to the host. Validates that the required auth cookies are present before writing, and leaves the Chrome window open on exit.

Fixed

  • login-server.js no longer restores the existing state.json before logging in. Meetup uses hCaptcha, and the saved state carries its reputation cookies (hmt_id, __cf_bm) along with MEETUP_BROWSER_ID. Once that browser identity was flagged, restoring it replayed the flag into every retry, so the captcha failed consistently rather than intermittently. Login now starts from a clean context, backing up any existing session first.
  • login-server.js no longer overwrites a working state.json when the login fails. It verifies MEETUP_SESSION, __meetup_auth_access_token and __meetup_auth_refresh_token are present before saving, and exits non-zero otherwise.

Changed

  • Removed the hardcoded Chrome/131.0.0.0 user agent from login-server.js. The image ships Chromium 145, so the pinned string contradicted the Sec-CH-UA client hints on every request. The stealth plugin's user-agent-override evasion now owns the UA, platform and client hints, keeping them consistent and masking Linux as Windows.

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.28

v1.0.27

Choose a tag to compare

@Quixomatic Quixomatic released this 23 Mar 20:02

Fixed

  • /test-rsvps now posts to the current channel instead of the configured RSVP channel

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.27

v1.0.26

Choose a tag to compare

@Quixomatic Quixomatic released this 23 Mar 19:57

Added

  • Footer on RSVP embeds: "📋 RSVP on Meetup.com"
  • Footer on comment embeds: "💬 Reply on Meetup.com"

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.26

v1.0.25

Choose a tag to compare

@Quixomatic Quixomatic released this 20 Mar 16:17

Fixed

  • Comments now display in chronological order (oldest first)

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.25

v1.0.24

Choose a tag to compare

@Quixomatic Quixomatic released this 20 Mar 16:13

Changed

  • Comment likes: use Likes: N tag with spacing instead of heart emoji

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.24

v1.0.23

Choose a tag to compare

@Quixomatic Quixomatic released this 20 Mar 16:08

Changed

  • Add spacing between comment groups in the comments embed

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.23

v1.0.22

Choose a tag to compare

@Quixomatic Quixomatic released this 20 Mar 15:58

Fixed

  • Fix comment scraping hanging: scope selectors to Comments section instead of matching page-wide
  • Handle events with no comments gracefully (returns immediately)

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.22

v1.0.21

Choose a tag to compare

@Quixomatic Quixomatic released this 20 Mar 15:40

Added

  • Per-guild timezone config (/config timezone) — defaults to America/New_York
  • Combined comment notifications — multiple new comments posted as one embed
  • Nested reply support with ↳ indentation and parent context
  • Like counts (❤️ N) on comments
  • "More comments" button auto-clicked to load full history
  • /test-reminder command
  • /test-comments posts to current channel
  • DB migrations (no reset needed)

Docker

docker pull ghcr.io/quixomatic/rollcallbot:1.0.21