aboutsummaryrefslogtreecommitdiffhomepage
path: root/storage
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2019-07-26 21:13:06 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2019-07-26 21:24:15 -0700
commit3d19313a7f655bc2626990650c4de8141485eea3 (patch)
treec7fb0ade2b0f2eac2ae42067342df2e584ad230d /storage
parent17aae725830cdd27131d40e20f3901d7da25e281 (diff)
Add option to disable feeds
Diffstat (limited to 'storage')
-rw-r--r--storage/feed.go40
-rw-r--r--storage/job.go10
2 files changed, 37 insertions, 13 deletions
diff --git a/storage/feed.go b/storage/feed.go
index 5c2df83..17b37ff 100644
--- a/storage/feed.go
+++ b/storage/feed.go
@@ -59,7 +59,7 @@ func (s *Storage) Feeds(userID int64) (model.Feeds, error) {
f.user_id, f.checked_at at time zone u.timezone,
f.parsing_error_count, f.parsing_error_msg,
f.scraper_rules, f.rewrite_rules, f.crawler, f.user_agent,
- f.username, f.password,
+ f.username, f.password, f.disabled,
f.category_id, c.title as category_title,
fi.icon_id,
u.timezone
@@ -99,6 +99,7 @@ func (s *Storage) Feeds(userID int64) (model.Feeds, error) {
&feed.UserAgent,
&feed.Username,
&feed.Password,
+ &feed.Disabled,
&feed.Category.ID,
&feed.Category.Title,
&iconID,
@@ -133,7 +134,7 @@ func (s *Storage) FeedByID(userID, feedID int64) (*model.Feed, error) {
f.user_id, f.checked_at at time zone u.timezone,
f.parsing_error_count, f.parsing_error_msg,
f.scraper_rules, f.rewrite_rules, f.crawler, f.user_agent,
- f.username, f.password,
+ f.username, f.password, f.disabled,
f.category_id, c.title as category_title,
fi.icon_id,
u.timezone
@@ -160,6 +161,7 @@ func (s *Storage) FeedByID(userID, feedID int64) (*model.Feed, error) {
&feed.UserAgent,
&feed.Username,
&feed.Password,
+ &feed.Disabled,
&feed.Category.ID,
&feed.Category.Title,
&iconID,
@@ -185,8 +187,10 @@ func (s *Storage) FeedByID(userID, feedID int64) (*model.Feed, error) {
func (s *Storage) CreateFeed(feed *model.Feed) error {
sql := `
INSERT INTO feeds
- (feed_url, site_url, title, category_id, user_id, etag_header, last_modified_header, crawler, user_agent, username, password)
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)
+ (feed_url, site_url, title, category_id, user_id, etag_header,
+ last_modified_header, crawler, user_agent, username, password,
+ disabled)
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)
RETURNING id
`
@@ -203,6 +207,7 @@ func (s *Storage) CreateFeed(feed *model.Feed) error {
feed.UserAgent,
feed.Username,
feed.Password,
+ feed.Disabled,
).Scan(&feed.ID)
if err != nil {
return fmt.Errorf("unable to create feed %q: %v", feed.FeedURL, err)
@@ -222,11 +227,27 @@ func (s *Storage) CreateFeed(feed *model.Feed) error {
// UpdateFeed updates an existing feed.
func (s *Storage) UpdateFeed(feed *model.Feed) (err error) {
- query := `UPDATE feeds SET
- feed_url=$1, site_url=$2, title=$3, category_id=$4, etag_header=$5, last_modified_header=$6, checked_at=$7,
- parsing_error_msg=$8, parsing_error_count=$9, scraper_rules=$10, rewrite_rules=$11, crawler=$12, user_agent=$13,
- username=$14, password=$15
- WHERE id=$16 AND user_id=$17`
+ query := `
+ UPDATE feeds SET
+ feed_url=$1,
+ site_url=$2,
+ title=$3,
+ category_id=$4,
+ etag_header=$5,
+ last_modified_header=$6,
+ checked_at=$7,
+ parsing_error_msg=$8,
+ parsing_error_count=$9,
+ scraper_rules=$10,
+ rewrite_rules=$11,
+ crawler=$12,
+ user_agent=$13,
+ username=$14,
+ password=$15,
+ disabled=$16
+ WHERE
+ id=$17 AND user_id=$18
+ `
_, err = s.db.Exec(query,
feed.FeedURL,
@@ -244,6 +265,7 @@ func (s *Storage) UpdateFeed(feed *model.Feed) (err error) {
feed.UserAgent,
feed.Username,
feed.Password,
+ feed.Disabled,
feed.ID,
feed.UserID,
)
diff --git a/storage/job.go b/storage/job.go
index e115533..c231c97 100644
--- a/storage/job.go
+++ b/storage/job.go
@@ -18,8 +18,9 @@ func (s *Storage) NewBatch(batchSize int) (jobs model.JobList, err error) {
SELECT
id, user_id
FROM feeds
- WHERE parsing_error_count < $1
- ORDER BY checked_at ASC LIMIT %d`
+ WHERE parsing_error_count < $1 AND disabled is false
+ ORDER BY checked_at ASC LIMIT %d
+ `
return s.fetchBatchRows(fmt.Sprintf(query, batchSize), maxParsingError)
}
@@ -32,8 +33,9 @@ func (s *Storage) NewUserBatch(userID int64, batchSize int) (jobs model.JobList,
SELECT
id, user_id
FROM feeds
- WHERE user_id=$1
- ORDER BY checked_at ASC LIMIT %d`
+ WHERE user_id=$1 AND disabled is false
+ ORDER BY checked_at ASC LIMIT %d
+ `
return s.fetchBatchRows(fmt.Sprintf(query, batchSize), userID)
}