• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / tg-spam
84%

Build:
DEFAULT BRANCH: master
Repo Added 06 Dec 2023 12:31AM UTC
Files 44
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH master
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 12-provide-flag-to-not-remove-user-after-unban
  • abnormal-spacing
  • add-from-detected-spam
  • add-lua-user-fields
  • add-shell-completions
  • add-slog
  • admin-info
  • alkk/master
  • approved-users-ui
  • audio-check
  • autoadd-ham
  • backlog-yes-items
  • ban-user-instead-of-restriction
  • callback
  • cas-retry-fix
  • check-by-id
  • chore/docker-go-1.27
  • chore/playwright-go-v0.6100.0
  • chore/samples-dead-query
  • chore/update-x-net
  • ci-hardening
  • ci/fix-paths-ignore
  • ci/pin-playwright
  • ci/restore-push-ref-filters
  • ci/workflow-hardening
  • classifier-unlearn
  • clean-invisible-chars
  • clean-msg-fix
  • cli-secrets-not-persisted
  • confdb-seeded-load
  • db-backup
  • dedup-samples
  • dependabot
  • dependabot/github_actions/github-actions-updates-20c91dd2a4
  • dependabot/github_actions/github-actions-updates-fcf4e41b5c
  • dependabot/go_modules/_examples/simplechat/github.com/umputun/tg-spam-1.18.0
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-0c570b14c2
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-28ef041b99
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-2c4077a24b
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-4af97a05b0
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-75e783174d
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-796ea05e18
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-8d185506e8
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-9e39e63601
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-aed0a436bf
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-b841ea8733
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-d503fb43d4
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-dd111468ba
  • dependabot/go_modules/_examples/simplechat/go-modules-updates-e06798f191
  • dependabot/go_modules/_examples/simplechat/modernc.org/sqlite-1.37.0
  • dependabot/go_modules/github.com/go-pkgz/testutils-0.4.2
  • dependabot/go_modules/go-modules-updates-589f0c7bc4
  • dependabot/go_modules/go-modules-updates-75e783174d
  • dependabot/go_modules/go-modules-updates-796ea05e18
  • dependabot/go_modules/go-modules-updates-94abde7b92
  • dependabot/go_modules/go-modules-updates-db89e520f1
  • dependabot/go_modules/go_modules-232a611e2d
  • dependabot/go_modules/go_modules-53acf6d51e
  • dependabot/go_modules/go_modules-57bd245098
  • dependabot/go_modules/go_modules-5a9c29dde4
  • dependabot/go_modules/go_modules-9c5197dcb8
  • dependabot/go_modules/go_modules-a135cde889
  • dependabot/go_modules/go_modules-acb2299ea6
  • dependabot/go_modules/go_modules-c8c7c79cc3
  • dependabot/go_modules/go_modules-dd7da38a6b
  • detect-story
  • detector-persist
  • docs/stale-defaults
  • download-spam-button
  • drop-chi
  • dup-skip-no-authored-text
  • dyn-update
  • easy-install-docs
  • eliminate-obsolete-flag
  • emoji-optimization
  • empty-text-locator
  • english-samples
  • exact-match-stopwords
  • extra-delete-ids
  • extract-lib
  • faster-removal
  • feat/csrf-protection
  • feat/decouple-image-text-len
  • feat/dictionary-management-ui
  • feat/e2e-ui-tests
  • feat/external-reply-meta
  • feat/handle-edited-messages
  • feat/meta-contact-only-354
  • feat/meta-mention-only-check
  • feat/sqlite-to-postgres-converter
  • feature-297-openai-thinking
  • feature-custom-prompts
  • feature-db-configuration
  • feature-lua-plugins
  • feature/add-spam-filter
  • feature/aggressive-cleanup
  • feature/auto-ban-threshold
  • feature/bot-no-sound
  • feature/delete-system-messages
  • feature/digitalocean-deployment
  • feature/duplicate-detection
  • feature/duplicate-detection-aggressive-cleanup
  • feature/info-on-unban
  • feature/issue92
  • feature/keyboard-detection
  • feature/max-short-msg-count-399
  • feature/mentions-limit
  • feature/meta-documents-only
  • feature/openai-check-short-messages
  • feature/prohibited-langs
  • feature/report-enhancements
  • feature/resend-orig-msg
  • feature/richmsg-detection
  • feature/silent-messages
  • feature/user-spam-reporting
  • feature/username-symbols-check
  • feature/username-userid-stopwords
  • fix-174
  • fix-183
  • fix-295-giveaway-forwards
  • fix-304-reasoning-effort
  • fix-admin-error-propagation
  • fix-ci-caching
  • fix-ci-disk-space
  • fix-findings
  • fix-firstmgs-count
  • fix-forward-detection
  • fix-gpt5-max-tokens-support
  • fix-info-button-markdown-escaping
  • fix-issue-223
  • fix-openai-short-msg-veto-335
  • fix-optional-user-id
  • fix-orphaned-report-deletion-343
  • fix-samples-migration
  • fix-settings-formatting
  • fix-spam-command-quote-handling
  • fix-stopword-space-normalization
  • fix-video-listener-event
  • fix/381-auth-hash
  • fix/anonymous-admin-posts-skip-spam-check
  • fix/anonymous-admin-report-commands
  • fix/caption-link-entities
  • fix/channel-ban-370
  • fix/check-quoted-text-for-spam
  • fix/confdb-reload-and-merge-artefacts
  • fix/convert-missing-tables
  • fix/detected-spam-index
  • fix/dictionary-import-and-forum-reports
  • fix/docker-preset-perms
  • fix/duplicate-detection-message-edits
  • fix/history-last-n
  • fix/image-caption-mentions
  • fix/image-only-spam-reporting
  • fix/issue-348-validate-bot-username
  • fix/issue107
  • fix/linked-channel-nil-from
  • fix/listener-nil-from
  • fix/locator-gid-pk
  • fix/media-short-text-detection
  • fix/non-admin-spam-report
  • fix/protect-chat-and-linked-channel
  • fix/reaction-ban-buttons
  • fix/report-ban-outcome
  • fix/report-handling
  • fix/report-superuser-mentions
  • fix/rest-writeheader-renderjson
  • fix/review-findings
  • fix/short-message-approval
  • fix/webapi-pin-cdn-sri
  • forward-check
  • hashed-web-passwd
  • ignore-classifier
  • imporve-hist-openai
  • improved-settings-page
  • jev-gibberish-check
  • jev-provider
  • letterlikе
  • lib-example
  • linked-channel-admin
  • links-only
  • linter-v2-migration
  • loading-indicator-delete
  • lua-check-join
  • lua-example-chat-id
  • lua-plugin-ham-approve
  • lua-reload-fix
  • lua-restrict
  • master
  • meta-checks
  • min-spam-probability
  • more-commands
  • more-ui
  • multi-first
  • multi-lang
  • multi-storage
  • negative-time
  • no-giveaway
  • normalize-spam-text
  • opeani-ignore
  • open-ai
  • openai-apibase
  • openai-gpt6-reasoning
  • openai-veto
  • optimize-exclude-match
  • optimize-sample-loader
  • paskal/bump_modules
  • paskal/claude
  • paskal/dependabot-disable-updates
  • paskal/dependabot-security-updates
  • paskal/dockerfile_comment
  • paskal/fix_ci
  • paskal/fix_golangci_lint
  • paskal/fix_typos
  • paskal/go-flags
  • paskal/openai_doc
  • paskal/remove-unused-code
  • paskal/remove_unused_moq
  • paskal/small-fixes
  • paskal/switch_to_newer_tb_lib
  • paskal/test_examples
  • paskal/update_doc_and_readme
  • paskal/update_modules
  • paskal/use_ghcrio
  • patch-1
  • perf/listener-extra-deletes
  • perf/listener-idle-timer
  • perf/multilang-scan
  • perf/openai-tokenizer
  • persistent-locator
  • persitent-ids
  • pic-caption
  • reaction-spam-detection
  • refactor-admin
  • refs/tags/v0.1.0
  • refs/tags/v0.1.1
  • refs/tags/v0.2.0
  • refs/tags/v0.2.1
  • refs/tags/v0.2.2
  • refs/tags/v0.2.3
  • refs/tags/v0.2.4
  • refs/tags/v1.0.0
  • refs/tags/v1.0.1
  • refs/tags/v1.1.0
  • refs/tags/v1.1.2
  • refs/tags/v1.10.0
  • refs/tags/v1.10.1
  • refs/tags/v1.10.2
  • refs/tags/v1.10.3
  • refs/tags/v1.11.0
  • refs/tags/v1.11.1
  • refs/tags/v1.11.2
  • refs/tags/v1.11.3
  • refs/tags/v1.11.4
  • refs/tags/v1.11.5
  • refs/tags/v1.11.6
  • refs/tags/v1.12.0
  • refs/tags/v1.12.1
  • refs/tags/v1.12.2
  • refs/tags/v1.13.0
  • refs/tags/v1.13.1
  • refs/tags/v1.13.2
  • refs/tags/v1.13.3
  • refs/tags/v1.13.4
  • refs/tags/v1.13.5
  • refs/tags/v1.13.6
  • refs/tags/v1.14.0
  • refs/tags/v1.14.1
  • refs/tags/v1.14.2
  • refs/tags/v1.14.3
  • refs/tags/v1.15.0
  • refs/tags/v1.16.0
  • refs/tags/v1.16.1
  • refs/tags/v1.16.2
  • refs/tags/v1.16.3
  • refs/tags/v1.17.0
  • refs/tags/v1.18.0
  • refs/tags/v1.18.1
  • refs/tags/v1.19.0
  • refs/tags/v1.19.2
  • refs/tags/v1.2.0
  • refs/tags/v1.2.1
  • refs/tags/v1.2.2
  • refs/tags/v1.2.3
  • refs/tags/v1.2.4
  • refs/tags/v1.2.5
  • refs/tags/v1.20.0
  • refs/tags/v1.20.1
  • refs/tags/v1.21.0
  • refs/tags/v1.22.0
  • refs/tags/v1.23.0
  • refs/tags/v1.23.1
  • refs/tags/v1.23.2
  • refs/tags/v1.23.3
  • refs/tags/v1.23.4
  • refs/tags/v1.23.5
  • refs/tags/v1.23.6
  • refs/tags/v1.23.7
  • refs/tags/v1.24.0
  • refs/tags/v1.25.0
  • refs/tags/v1.26.0
  • refs/tags/v1.27.0
  • refs/tags/v1.28.0
  • refs/tags/v1.3.0
  • refs/tags/v1.3.1
  • refs/tags/v1.4.0
  • refs/tags/v1.4.1
  • refs/tags/v1.4.2
  • refs/tags/v1.5.0
  • refs/tags/v1.5.1
  • refs/tags/v1.5.2
  • refs/tags/v1.5.3
  • refs/tags/v1.6.0
  • refs/tags/v1.6.1
  • refs/tags/v1.7.0
  • refs/tags/v1.8.0
  • refs/tags/v1.8.1
  • refs/tags/v1.8.2
  • refs/tags/v1.8.3
  • refs/tags/v1.9.0
  • remove-from-aproved
  • reply-ban
  • report-channel-ban
  • req-history
  • restore-configurable-auth-user
  • retry-openai
  • retry-plain
  • rt-aproved-save
  • settings-ui
  • simplechat-example
  • small-screen-styles
  • soft-ban
  • softmax_float64_underflow
  • spam-storage
  • sqlite-all
  • supers-by-id
  • test/proc-user-reply
  • training-ban
  • training-mode
  • unban-confirm
  • universal-multilang
  • update-go-1.25
  • user-report-monitored-group
  • v1.4.2
  • video-check
  • volume-warns
  • warn-auto-ban
  • web-checker
  • webapi
  • worktree-recent-bot-users
  • would

11 Oct 2026 08:43AM UTC coverage: 84.265% (+0.08%) from 84.185%
38125833205

push

github

umputun
feat(lua): restrict the libraries plugins can use

Plugins ran with every gopher-lua library, so a plugin could read the
process environment, read and write files and run commands. They now
get base, table, string, math, coroutine and the time functions of os;
--lua-plugins.unrestricted, set only on the command line or in the
environment, restores the full set.

A script that fails to load, or an enabled plugin that isn't loaded, is
skipped with a warning instead of disabling every plugin, and a runtime
failure is logged once per plugin.

42 of 45 new or added lines in 4 files covered. (93.33%)

1 existing line in 1 file now uncovered.

8681 of 10302 relevant lines covered (84.27%)

192.63 hits per line

Relevant lines Covered
Build:
Build:
10302 RELEVANT LINES 8681 COVERED LINES
192.63 HITS PER LINE
Source Files on master
  • Tree
  • List 44
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
38125833205 master feat(lua): restrict the libraries plugins can use Plugins ran with every gopher-lua library, so a plugin could read the process environment, read and write files and run commands. They now get base, table, string, math, coroutine and the time fun... push 11 Oct 2026 08:49AM UTC umputun github
84.27
38118645228 lua-restrict feat(lua): restrict the libraries plugins can use Plugins ran with every gopher-lua library, so a plugin could read the process environment, read and write files and run commands. They now get base, table, string, math, coroutine and the time fun... Pull #476 11 Oct 2026 06:42AM UTC paskal github
84.25
38118648078 lua-restrict feat(lua): restrict the libraries plugins can use Plugins ran with every gopher-lua library, so a plugin could read the process environment, read and write files and run commands. They now get base, table, string, math, coroutine and the time fun... Pull #476 11 Oct 2026 06:42AM UTC paskal github
84.25
38092723819 master ci: test on Go 1.25 and 1.27, release with 1.27 The docker image is built with Go 1.27 since the builder image bump, while tests ran on 1.25 only and release binaries were built with 1.25. push 10 Oct 2026 10:52PM UTC umputun github
84.19
38092564465 master chore(docker): build the image with Go 1.27 The build stage used buildgo v1.17.0, which ships Go 1.25.0, so the image misses every standard library security fix since. buildgo v1.21.1 ships Go 1.27.1, which takes govulncheck's binary-mode count f... push 10 Oct 2026 10:49PM UTC umputun github
85.36
38092228143 master feat(data): add an opt-in English sample set (#473) * feat(data): add an opt-in English sample set The preset samples are mostly Russian, and on held-out English chat they flag about half of ordinary messages as spam. data/en holds an English se... push 10 Oct 2026 10:43PM UTC web-flow github
85.39
38082710978 english-samples Use a copy of the English samples in Docker, drop mislabelled spam Inside the image, /srv/preset/en loses the *.loaded rename whenever the container is recreated, so each upgrade would reimport the files and reset custom stop words and excluded t... Pull #473 10 Oct 2026 08:15PM UTC paskal github
85.36
38080792146 chore/docker-go-1.27 chore(docker): build the image with Go 1.27 The build stage used buildgo v1.17.0, which ships Go 1.25.0, so the image misses every standard library security fix since. buildgo v1.21.1 ships Go 1.27.1, which takes govulncheck's binary-mode count f... Pull #474 10 Oct 2026 07:46PM UTC paskal github
85.39
38080795358 chore/docker-go-1.27 chore(docker): build the image with Go 1.27 The build stage used buildgo v1.17.0, which ships Go 1.25.0, so the image misses every standard library security fix since. buildgo v1.21.1 ships Go 1.27.1, which takes govulncheck's binary-mode count f... Pull #474 10 Oct 2026 07:45PM UTC paskal github
85.38
38078902359 english-samples feat(data): add an opt-in English sample set The preset samples are mostly Russian, and on held-out English chat they flag about half of ordinary messages as spam. data/en holds an English set that a group can switch to with --files.samples, leav... Pull #473 10 Oct 2026 07:16PM UTC paskal github
85.38
See All Builds (1518)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc