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

Civil / tg-simple-regex-antispam / 13070263183

31 Jan 2025 09:45AM UTC coverage: 0.0%. Remained the same
13070263183

Pull #5

github

Civil
Refactor and improve bot

 * Fixed small bug in forward action
 * package statefulFilters renamed to chains
 * generic badgerdb interface
 * add filter that counts repeated messages
 * add filter that checks if message is a story
 * add filter that checks if message was marked as spam
Pull Request #5: some improvements

0 of 1422 new or added lines in 20 files covered. (0.0%)

21 existing lines in 3 files now uncovered.

0 of 3756 relevant lines covered (0.0%)

0.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/dbs/generic/db.go
1
package generic
2

3
import (
4
        "github.com/dgraph-io/badger/v4"
5
        "go.uber.org/zap"
6

7
        "github.com/Civil/tg-simple-regex-antispam/constants"
8
        "github.com/Civil/tg-simple-regex-antispam/dbs/interfaces"
9
        "github.com/Civil/tg-simple-regex-antispam/helper/badger/badgerOpts"
10
        "github.com/Civil/tg-simple-regex-antispam/helper/stateful"
11
)
12

13
type GenericDB struct {
14
        stateful.Stateful
15
        logger   *zap.Logger
16
        stateDir string
17
        db       *badger.DB
18
}
19

NEW
20
func New(logger *zap.Logger, name string, config map[string]any) (interfaces.SharedDB, error) {
×
NEW
21
        stateDirI, ok := config["state_dir"]
×
NEW
22
        if !ok {
×
NEW
23
                return nil, constants.ErrRequiresStateDir
×
NEW
24
        }
×
NEW
25
        stateDir, ok := stateDirI.(string)
×
NEW
26
        if !ok {
×
NEW
27
                return nil, constants.ErrStateDirNotString
×
NEW
28
        }
×
29

NEW
30
        badgerDB, err := badger.Open(badgerOpts.GetBadgerOptions(logger, "bannedDB", stateDir))
×
NEW
31
        if err != nil {
×
NEW
32
                return nil, err
×
NEW
33
        }
×
34

NEW
35
        db := &GenericDB{
×
NEW
36
                logger:   logger.With(zap.String("db_name", name)),
×
NEW
37
                stateDir: stateDir,
×
NEW
38
                db:       badgerDB,
×
NEW
39
        }
×
NEW
40
        return db, nil
×
41
}
42

43
// StoreValue stores a value in the database
NEW
44
func (db *GenericDB) StoreValue(key []byte, value []byte) error {
×
NEW
45
        return db.db.Update(func(txn *badger.Txn) error {
×
NEW
46
                return txn.Set(key, value)
×
NEW
47
        })
×
48
}
49

NEW
50
func (db *GenericDB) LoadValue(key []byte) ([]byte, error) {
×
NEW
51
        var value []byte
×
NEW
52
        err := db.db.View(func(txn *badger.Txn) error {
×
NEW
53
                item, err := txn.Get(key)
×
NEW
54
                if err != nil {
×
NEW
55
                        return err
×
NEW
56
                }
×
NEW
57
                value, err = item.ValueCopy(nil)
×
NEW
58
                return err
×
59
        })
NEW
60
        return value, err
×
61
}
62

NEW
63
func (db *GenericDB) LoadState() error {
×
NEW
64
        return nil
×
NEW
65
}
×
66

NEW
67
func (db *GenericDB) SaveState() error {
×
NEW
68
        return db.db.Sync()
×
NEW
69
}
×
70

NEW
71
func (db *GenericDB) Close() error {
×
NEW
72
        return db.db.Close()
×
NEW
73
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc