Commit Graph
57 Commits
Author SHA1 Message Date
d01b738741 Implement function to prune string keeping HTML closing tags (#1870)
* Implement function to prune string keeping HTML closing tags

Fixes #1587

* change const name

remove unneeded comment

* move pruneHTML to separated file

* move const back to telegram.go

* Add unit tests for string array manipulation and HTML pruning

Introduce comprehensive test cases for stringArr methods (Push, Pop, Unshift, Shift, String) to ensure correct behavior and state management. Additionally, add tests for HTML pruning functions (pruneHTML, pruneStringToWord) to validate handling of length constraints and formatting scenarios.

* Improve behavior

* Fix pruneHTML to count visible text only, add parent text pruning

- Fix bug where HTML tags were counted toward the character limit
  instead of only visible text content
- Add pruning for parent comment text in Telegram notifications
- Simplify pruneStringToWord using strings.LastIndex
- Remove unused stringArr type and its tests
- Consolidate and simplify test cases

---------

Co-authored-by: Umputun <umputun@gmail.com>
Co-authored-by: Dmitry Verkhoturov <paskal.07@gmail.com>
2025-12-04 11:11:10 -06:00
Dmitry VerkhoturovandUmputun 59fb68ab2d switch to go-pkgz/notify package: telegram 2022-04-29 13:32:15 -05:00
Dmitry VerkhoturovandUmputun ba86db1263 replace errors package with fmt.Errorf
https://gist.github.com/Peltoche/60b8b81dfbf70164d0e2b88988003229
was used for it, thanks to @Peltoche for publishing it.
2022-04-26 00:25:09 -05:00
Ivan NedzveckijandUmputun c3b39b41ae telegram notifications format headers, resolve #1202 2022-01-12 11:40:00 -06:00
Dmitry VerkhoturovandUmputun 4f672cdec5 fix formatting for telegram reply notifications 2021-12-20 00:07:15 -06:00
Dmitry VerkhoturovandUmputun 90e537358d update golangci-lint to 1.43.0, fix found issues 2021-11-23 15:00:40 -06:00
Dmitry VerkhoturovandUmputun c027dcd765 enable telegram notify trough writing bot a message
Previously it was done through writing bot first,
clicking a button, copying the token, and pasting
it into the web interface.

The new flow is way simpler: click the link
to write bot a message, then click the "Check"
button in the web UI and you got notifications
enabled.
2021-11-07 11:51:28 -06:00
Dmitry VerkhoturovandUmputun 6449b7d92b improve telegram notifications
These changes are designed to ease the transition into
the simplified telegram notifications verification model.
2021-11-01 14:35:37 -05:00
Dmitry VerkhoturovandUmputun 8fc9141f19 extract TelegramBotInfo structure 2021-10-25 16:47:15 -05:00
Dmitry VerkhoturovandUmputun 498073c509 send telegram messages in HTML mode
That resolves problem with inability
to properly render message text in the
resulting telegram message due to markdown
escaping trickiness.
2021-10-24 14:05:06 -05:00
Dmitry VerkhoturovandUmputun f817fd38ed improve telegram messages escaping
Due to the wrong order of `html.UnescapeString`
applying, messages sometimes ended up crippled.

Due to `parse_mode=Markdown` set in Telegram
send message call, `ParseMode` in message
was ignored.
2021-10-24 14:05:06 -05:00
Umputun ad54a9450b fix parent tg formatting 2021-07-04 00:30:11 -05:00
Umputun b8050f817c quote parrent comment in tg notif 2021-07-04 00:03:23 -05:00
Umputun 70245504f5 restore link to original in tg notif 2021-07-03 23:52:20 -05:00
Umputun 05a85b6bfd reformat tg message to make it readable again 2021-07-03 23:48:00 -05:00
Dmitry VerkhoturovandUmputun 83ae758573 address review commends 2021-07-03 14:57:09 -05:00
Dmitry VerkhoturovandUmputun 200733ed03 add user telegram notifications 2021-07-03 14:57:09 -05:00
Dmitry VerkhoturovandUmputun 1847184960 clarify telegram notifications code and text 2021-06-13 19:07:56 -05:00
Dmitry VerkhoturovandUmputun d6167980f4 remove ability to set telegram API, clarify params 2021-06-13 01:49:15 -05:00
Dmitry VerkhoturovandUmputun ea15b28bf6 clarification of notify comments and code 2021-06-12 12:59:26 -05:00
Dmitry VerkhoturovandUmputun b13fa228b6 start using the provided timeout in the telegram notify 2021-05-25 13:29:19 -05:00
Umputun 0cb0232fa1 escape [ ] ( ) from tg title #839 2021-01-03 03:09:21 -06:00
Dmitry VerkhoturovandUmputun ced40b525a move email notification logic into Email struct 2020-10-18 17:29:44 -05:00
Dmitry VerkhoturovandUmputun c9b395f60d separate notify.SubmitVerification from notify.Submit 2020-10-11 23:13:24 -05:00
Dmitry VerkhoturovandUmputun e922fc31a2 enable gocritic linter and fix found issues 2020-04-26 17:05:34 -05:00
Dmitry VerkhoturovandUmputun cab3b8a831 move admin email notifications call to rest/api module 2020-04-06 16:27:19 -05:00
Dmitry VerkhoturovandUmputun 30c42ce36b Multiple CI and code fixes (#486)
* enable golangci-lint for momeory_store example

* add race_test option to makefile

* prune lost goroutine in TestRest_Shutdown

* run race tests without cache

* fix ci pipeline

* fix typos
2019-12-09 12:30:07 -06:00
Dmitry VerkhoturovandUmputun b40cb7866b Email sender implementation (#471)
* email sender initial implementation

* add VerificationMetadata into notify.Request

* multiple review fixes

- customizable verification notification message subject
- clarify autoFlush nature in its commentary
- defer writer.Close in Email.sendEmail instead of calling it manually,
  potentially missing the call if error happened between the creation and
  closing.

* add explanatory commentary to notify.Request structure

* fix TCP connection timout commentary typo

* improve table tests presence

* introduce parallelism to tests

* abstract smtpClientWithMaker away

* fix incorrect Email reference in Email.sendMessages

* naming fixes, remove t.Parallel() from tests

* consistent space in commentary

* rename sendEmail to smtpSend, rearrange variables definitions

* switch Email to create new connection for every Send request

* fix tests for connection-per-submit email sending

* fix tests

* simplify sender object
2019-12-02 18:59:32 -06:00
Dmitry Verkhoturov 6c73a38c49 switch notify.Submit to receive notify.Request instead of store.Comment 2019-11-23 13:24:57 +01:00
UmputunandGitHub 4adbca22b2 Refactor rest (#320)
* fresh vendor

* enforce vendor flag with env

* move tree to service package

* move controllers routing to rest.go, remove separate subrouters

* cleanup/formatting

* missing vendor packages

* move rss, img proxy, robots and getstarted to top-level routes

* simplify logger middleware usage

* randomize server test ports

* check for non-admin in admin tests

* lint: minor warns

* admin test to jwt admin
2019-05-07 01:54:19 -05:00
Umputun 76d0cc32e2 use repeater context to avoid long calls 2019-01-30 15:59:00 -06:00
Umputun 1a78c6eec6 add @ prefix for non-integer tg channelID #255 2019-01-21 13:28:03 -06:00
Pavel Alimpiev a9909a91f4 Remove prefixing of a @ character to the channel name 2019-01-18 12:50:13 +03:00
Umputun 781d90e98b switch to lgr 2019-01-07 22:32:50 -06:00
Umputun ad6491ff14 tg link with post title 2019-01-05 17:48:39 -06:00
Umputun c9ce07c2e8 repeat telegram init attempt #225 2018-11-30 11:43:58 -06:00
Umputun cefb5324d5 double telegram timeout 2018-11-30 11:30:55 -06:00
Umputun 0f3243e19b close notifier in shutdown sequence 2018-11-04 11:51:08 -06:00
Umputun c589b5d65c eliminate manual json marshaling in tg 2018-10-26 13:58:31 -05:00
Umputun 16411c9375 unescape tg message 2018-10-26 12:55:30 -05:00
Umputun ae5aa5c1b7 switch tg to post 2018-10-26 12:40:18 -05:00
Umputun 07f3e07871 change arrows symb 2018-10-26 10:55:08 -05:00
Umputun aac58fac1e restore icon in tg message 2018-10-26 02:57:34 -05:00
Umputun 43b97f8d56 typo in comment linl 2018-10-25 23:21:24 -05:00
Umputun 431e8f2971 more tests for unhappy tg path 2018-10-25 20:27:35 -05:00
Umputun f08144d19e unicode arrow for tg orig link 2018-10-25 13:07:57 -05:00
Umputun 0ab71de95d unicode arrow for tg from->to 2018-10-25 12:48:23 -05:00
Umputun 7db2959eb1 mack to markdown tg formatting, html is way too limited 2018-10-25 12:38:55 -05:00
Umputun bc510f8c8e replace br to \n for telegram 2018-10-25 12:22:59 -05:00
Umputun 8f90af8343 fix br to one telegram may like more 2018-10-25 12:14:10 -05:00