Commit Graph
53 Commits
Author SHA1 Message Date
Dmitry VerkhoturovandGitHub ba7c3aed94 refactor: modernise Go code with go fix and manual improvements (#2027)
Apply go fix ./... analysers (Go 1.26) across backend and examples:
- interface{} → any (type alias, no behaviour change)
- for i := 0; i < N; i++ → for range N / for i := range N
- slices.Contains / slices.ContainsFunc replacing manual loops
- strings.SplitSeq replacing strings.Split in range (avoids allocation)
- strings.CutPrefix replacing HasPrefix+TrimPrefix
- min() replacing manual if/else
- fmt.Appendf replacing []byte(fmt.Sprintf(...))
- strings.Builder replacing string += concatenation
- wg.Go(func(){}) replacing wg.Add(1)/go/wg.Done() pattern
- removed redundant ii := i loop variable copies (unnecessary since Go 1.22)

omitempty on struct-typed JSON fields: go fix removed omitempty from
struct-typed fields (time.Time, PostInfo, UserDetailEntry) because
encoding/json's omitempty never applied to struct types — it was always
a no-op. Kept as bare tags (no omitzero replacement) to preserve the
existing serialisation behaviour.
2026-03-25 16:42:37 -05:00
Dmitry VerkhoturovandUmputun 661f042cb4 pin golangci-lint version to latest available, fix reported errors 2024-05-09 22:32:00 -05:00
Dmitry VerkhoturovandUmputun 69b18d3536 fix wrapped errors checks
As errors can be wrapped in recent versions of Go, the proper way
to check the error types are `errors.As` and `errors.Is`.
2023-10-10 23:36:04 -05:00
Dmitry VerkhoturovandUmputun 9c718cbc5f clarify SharedSecret usage by comment
It's not used aside from `server` but it was decided to keep it in place
for backwards compatibility in PR #1544.
2023-07-16 20:50:03 -05:00
Dmitry VerkhoturovandUmputun a03c002df4 bump golangci-lint to latest 2023-04-02 01:21:33 -05:00
Dmitry VerkhoturovandUmputun 8d42d0714f bump backend dependencies
Also, switch from fork github.com/umputun/go-flags back to original
github.com/jessevdk/go-flags.
2022-01-31 14:24:33 -06:00
Dmitry Verkhoturov 31af19e456 make FindDeprecatedFlagsCollisions private method 2022-01-31 00:40:03 +03:00
Dmitry Verkhoturov 8689b11e7c log when deprecated and new args are set at the same time
For example, when notify.telegram.token and telegram.token
are both set but to different values, user might see
"access denied" error in log on attempt to send telegram
notification, thinking that notify.telegram.token value
is used, when in fact it is ignored and only telegram.token
is used.

New behavior is the same, ignoring the old param when new
one is set, but issuing the error log message which
explicitly tells the user about that.

Resolves #1218.
2022-01-31 00:40:03 +03:00
Dmitry VerkhoturovandUmputun 151913f371 style fixes to the documentation and CLI params description 2021-12-20 13:36:58 -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 d6167980f4 remove ability to set telegram API, clarify params 2021-06-13 01:49:15 -05:00
Dmitry VerkhoturovandUmputun 1cff4eb847 clarify deprecation messages
Turned out we don't really want to break
users configurations, so deprecated values
stay with us at least before 2.0 is released.
2021-05-25 14:42:29 -05:00
Dmitry VerkhoturovandUmputun e841bc27fb clarify --secret usage based on #861 2021-05-05 02:39:32 -05:00
Umputun 0895de2f7e rename all packages from the legacy remark/ to remark42 2020-05-12 11:34:16 -05:00
Dmitry VerkhoturovandUmputun e922fc31a2 enable gocritic linter and fix found issues 2020-04-26 17:05:34 -05:00
Dmitry VerkhoturovandUmputun 513c8f353d sticter golangci config, fix discovered issues 2020-04-19 16:21:09 -05:00
Umputun d7442ef1a9 switch flags, revendor 2020-04-13 12:30:23 -05:00
Dmitry VerkhoturovandUmputun d0ddd8aa80 Unify SMTP settings in separate section (#536)
* move SMTP settings to separate group

* move deprecated options in separate section in readme

* adjust variables in docker-compose

* add description to SmtpGroup

* remove SMTP option setting which is already set to same value

* remove smtp port default for consistency

* add server deprecated functions handling

* satisfy linter

* add missing bracket in description

* add test for handleDeprecatedFlags

* add HandleDeprecatedFlags function to CommonOptionsCommander

* improve HandleDeprecatedFlags behavior

* add missing result check to ServerCommand.HandleDeprecatedFlags
2020-01-14 14:49:39 -06:00
Anton KosourovandUmputun 4dc123dbe8 Change url in comments, decorate approach (#431)
* WIP: url mapper, wrapped reader approach

* create url mapper on start

* add pattern matching in mapper

* check pattern matching in test

* change site-id from radio-t to remark42 in tests

* create new url mapper on demand, based on given func, union strict and prefix rules

* rename convert to remap

* add import with mapper test

* rename mapper func to UrlMapperMaker, create comments in test via data service

* move /import/wait to /wait ctrl

* add remap cmd

* fix url naming
2019-09-30 13:12:42 -05: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 bf17b31eaa add caller func to debug logging 2019-04-05 16:24:58 -05:00
Umputun 5d052f8eff remove pkg info for prod logging, add braces 2019-04-05 16:24:01 -05:00
Umputun 45ae2e6f13 revendor with lgr 0.6.1 2019-03-31 16:21:32 -05:00
Umputun 29dc368ea8 revendor with fresh lgr, add logger to http server 2019-03-31 13:45:44 -05:00
Umputun 2105b5ddfe revendor with latest lgr (logging) 2019-03-05 22:31:37 -06:00
Umputun 1761995482 skip logger pkg 2019-01-22 23:21:36 -06:00
Umputun 32503395ea add caller pkg to log 2019-01-22 18:30:22 -06:00
Umputun cfe8391da5 revendor with lgr 0.2 2019-01-11 22:51:43 -06:00
Umputun 781d90e98b switch to lgr 2019-01-07 22:32:50 -06:00
UmputunandGitHub 2ecc08fb3e Ext cache (#236)
* remove  cache, switch to go-pkgz/rest/cache

* remove mongo cache from server test

* remove old caching code

* test tricky disqus inputs

* fix migrator test

* stacktrace dump test
2018-12-19 21:57:33 -06:00
Umputun c393359511 add cleanup command with semi-automatic scoring 2018-12-18 17:40:10 -06:00
UmputunandGitHub 6bc0d7ee37 Import (#232)
* import with two-stages, wait api and prevnts double run for the same site #231

* lint: missing err check on tmp import file removal

* catch SIQQUIT

* add imprter comments

* add new import apis to spec

* add test for form import

* timeout for import wait api

* lint: uncecked errs
2018-12-16 23:21:01 -06:00
Umputun 7934d9af73 add cli for AvatarCmd 2018-09-10 20:48:36 -05:00
Umputun a856fd9c7d pass revision as common opts instead of package global 2018-09-10 10:44:22 -05:00
Umputun add715a111 move common options to shared cmd 2018-09-05 16:42:46 -05:00
Umputun ba4cc38e40 lint: missing comment 2018-09-05 02:19:03 -05:00
Umputun 1b3904a307 populate common params to commands 2018-09-05 02:13:57 -05:00
UmputunandGitHub 0cd76dfd2f Feature/admin_store (#197)
* generalize admins and email info with store interface

* lint: missing group comment

* fix admin group with shared substruct
2018-09-02 13:00:20 -05:00
Umputun 8b3821e797 simplify cmds 2018-08-30 00:23:36 -05:00
UmputunandGitHub ba6bab5b91 Feature/cmd (#195)
* support flags commands, move to cmd

* fix target name

* test for happy path importer

* add export cmd

* fix wrong import, lint warns

* increase test timeout

* add sellp to allow main test server to start

* implement all cmds

* handle backup/restore errors

* fix import status check, hide secret from logs

* backup cmd err tests

* randimize test port

* avoid dup code in Last controller

* add target to make all bin archives

* remove container in make

* add smiple scripts to simplify commands, update readme

* add docs on dockerless, enforce app user

* add restore info

* move last to lastCommentsScope const
2018-08-26 21:45:04 -05:00
Umputun 8503e31f64 reformat imports 2018-08-15 22:14:30 -05:00
Umputun c459b31aa8 fix typos in struct names 2018-08-11 11:29:31 -05:00
UmputunandGitHub 2ff955edf1 feature/comment-formater (#186)
* extract comment formatter functuionality to allow md in #156

* add abilty to pass multiple convertors to formater
2018-08-10 19:35:45 -05:00
UmputunandGitHub 1b9ee3d763 feature/keystore (#185)
* add keyStore and switch all secret usage to this store

- implement static ks
- add shared secret

* lint: shadow in jwt and missing comment

* rename static key group to shared and use top-level shared secret

* move siteID extraction (from token) to internal func

* lint: merge var and assign for key test
2018-08-08 14:33:18 -05:00
Anton KosourovandUmputun 39e426bd4b Add wordpress importer (#182)
* add wordpress, test

* add wp migrator to rest

* add readme, fix test, fix error handling
2018-08-02 22:05:53 -05:00
UmputunandGitHub 3520de768d feature/mongo cache (#180)
* add siteID to cache Get

* indirect option setters

* add mongo cache with tests, add Key and Flusher

* lint: minor warns

* workaround for cache parallel test

* repeater in mongo cache

* missing repeater vendor

* fix nop cache

* add cache mongo benchmark

* wired mongo cache, single opts group for mongo

* disable goconst

* stop cache repeated on not found error

* use local mongo for tests in travis
2018-07-24 18:43:53 -04:00
UmputunandGitHub dbd1d4069f feature/ext-mongo (#177)
* externalize mongo wrapper

* remove mongo env from drone

* export mongo test for coverage report
2018-07-22 22:46:25 -04:00
Umputun a22521ab92 allow mongo with URL only, update readme for different stores 2018-07-13 14:16:03 -05:00
UmputunandGitHub de013c7d5a feature/mongo (#165)
* WIP: start mongo engine

* WIP: mongo accessor and admin

* integrate mongo store to main

* disable mongo tests by default, only in CI

* connection with constructor

* add mongo buffered writer

* buffered mongo writer

* fix nil responses on an empty list from mongo

* missing mongo index for scores

* cancelable store

* add gridfs implementation of avatar store

* fix race on mongo session copy

* gridfs avatars without tmp files

* move avatar store

* minor comments and refactoring for avatar store

* merged from current master

* simplify gridfs reader

* lint: fix minor warns

* test mongo against env defined url

* pass MONGO_REMARK_TEST to docker and travis

* set dockerfile env for mongo test url

* increase connect timeout in mongo tests

* pass MONGO_REMARK_TEST to drone build

* add MONGO_REMARK_TEST to branch stage of drone

* mass mongo test url via build_args_from_env

* populate mongo IP to docker build hosts

* test env

* pass mongo ip via .mongo

* remove .mongo temp from git

* add .mongo -> env to linter step

* allow more time to autoflush writer test

* default mongo tests to "mongo" if not in env

* merge fresh master into

* add test for mongo cleanup

* msg for a failed test

* lazy fix for failed test

* add an ability to skip all mongo tests

* add backend dev instructions

* remove unused code from mongo server

* move mongo testing to connection_test

* restore testing.go

* lint: minor warns for testing code
2018-07-13 12:27:11 -05:00
Umputun 6a4067d6e6 remove postFlush 2018-06-30 13:30:17 -05:00