@xriss/weerss 0.0.29 → 0.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/cmd.js +3 -0
  2. package/items.js +1 -0
  3. package/package.json +1 -1
  4. package/weerss.js +55 -26
package/cmd.js CHANGED
@@ -86,6 +86,9 @@ weerss dirs
86
86
  any cleanup just prints bash commands that you may wish to run
87
87
  later.
88
88
 
89
+ weerss purge
90
+ Remove items from database that do not pass the current filters.
91
+
89
92
  weerss help
90
93
  Print this help message.
91
94
 
package/items.js CHANGED
@@ -186,3 +186,4 @@ items.add=async function(it)
186
186
  await items.set(item)
187
187
  }
188
188
  }
189
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xriss/weerss",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
4
4
  "source": "weerss.js",
5
5
  "type": "module",
6
6
  "repository": {
package/weerss.js CHANGED
@@ -253,37 +253,37 @@ weerss.bucket_sort=function(bucket)
253
253
  return bucket
254
254
  }
255
255
 
256
- weerss.getlist=async function(filters)
256
+ weerss.item_filter=function(key,item)
257
257
  {
258
- let cb=function(key,item)
258
+ if(!item.show) { return false }
259
+ if(item.show.fail) { return false }
260
+ if(!item.show.tvmaze) { return false }
261
+ if( ! shows.good_show(item.show,weerss.config.show.rules) ) { return false }
262
+
263
+ // remove huge/small files
264
+ if(!item.torrent) { return false }
265
+ if(!item.torrent.file_length) { return false }
266
+ if( item.torrent.file_length > weerss.config.episode.maxsize ) { return false }
267
+ if( item.torrent.file_length < weerss.config.episode.minsize ) { return false }
268
+
269
+ if( weerss.config.episode.maxage ) // remove old episodes
259
270
  {
260
- if(!item.show) { return false }
261
- if(item.show.fail) { return false }
262
- if(!item.show.tvmaze) { return false }
263
- if( ! shows.good_show(item.show,weerss.config.show.rules) ) { return false }
264
-
265
- // remove huge/small files
266
- if(!item.torrent) { return false }
267
- if(!item.torrent.file_length) { return false }
268
- if( item.torrent.file_length > weerss.config.episode.maxsize ) { return false }
269
- if( item.torrent.file_length < weerss.config.episode.minsize ) { return false }
270
-
271
- if( weerss.config.episode.maxage ) // remove old episodes
272
- {
273
- if(!item.show.date) { return false }
274
- let now=(new Date()).getTime()
275
- let test=Date.parse(item.show.date)
276
- let days=Math.floor((now-test)/(1000*60*60*24))
277
- if( days > weerss.config.episode.maxage ) { return false } // this episode is too old
278
- }
271
+ if(!item.show.date) { return false }
272
+ let now=(new Date()).getTime()
273
+ let test=Date.parse(item.show.date)
274
+ let days=Math.floor((now-test)/(1000*60*60*24))
275
+ if( days > weerss.config.episode.maxage ) { return false } // this episode is too old
276
+ }
279
277
 
280
- if( ! shows.good_episode(item.show,weerss.config.episode.rules) ) { return false } // skip this episode?
278
+ if( ! shows.good_episode(item.show,weerss.config.episode.rules) ) { return false } // skip this episode?
281
279
 
282
- return true
283
- }
284
-
280
+ return true
281
+ }
282
+
283
+ weerss.getlist=async function(filters)
284
+ {
285
285
  // all items then we sort and filter and list
286
- let its=await db.list("items",filters||{},cb)
286
+ let its=await db.list("items",filters||{},weerss.item_filter)
287
287
 
288
288
  let buckets={}
289
289
  let itemshows={}
@@ -613,6 +613,35 @@ weerss.purge=async function(args)
613
613
  {
614
614
  await db.setup()
615
615
 
616
+ let keep=0
617
+ let drop=0
618
+
619
+ await db.handle.each(`
620
+
621
+ SELECT * FROM items
622
+
623
+ `,{},function(row)
624
+ {
625
+ let k=row.key
626
+ let v=JSON.parse(row.value)
627
+
628
+ if( weerss.item_filter(k,v) )
629
+ {
630
+ // keep
631
+ process.stdout.write(".")
632
+ keep++
633
+ }
634
+ else
635
+ {
636
+ // delete
637
+ db.delete("items",k)
638
+ process.stdout.write("X")
639
+ drop++
640
+ }
641
+ })
642
+ process.stdout.write("\n")
643
+
644
+ console.log("Kept "+keep+" dropped "+drop+" items.")
616
645
 
617
646
  await db.close()
618
647
  }