Zed 7 лет назад
Родитель
Сommit
d7e0fa6059
6 измененных файлов с 21 добавлено и 15 удалено
  1. 1 1
      nitter.nimble
  2. 1 1
      src/api/media.nim
  3. 7 5
      src/cache.nim
  4. 7 6
      src/prefs.nim
  5. 4 1
      src/types.nim
  6. 1 1
      src/views/preferences.nim

+ 1 - 1
nitter.nimble

@@ -11,7 +11,7 @@ bin           = @["nitter"]
 # Dependencies
 
 requires "nim >= 0.19.9"
-requires "norm >= 1.0.13"
+requires "norm >= 1.0.15"
 requires "jester >= 0.4.3"
 requires "regex >= 0.11.2"
 requires "q >= 0.0.7"

+ 1 - 1
src/api/media.nim

@@ -102,7 +102,7 @@ proc getVideoVar(tweet: Tweet): var Option[Video] =
     return tweet.video
 
 proc getVideo*(tweet: Tweet; agent, token: string; force=false) {.async.} =
-  withDb:
+  withCustomDb("cache.db", "", "", ""):
     try:
       getVideoVar(tweet) = some(Video.getOne("videoId = ?", tweet.id))
     except KeyError:

+ 7 - 5
src/cache.nim

@@ -1,7 +1,9 @@
-import asyncdispatch, times
+import asyncdispatch, times, strutils
 import types, api
 
-withCustomDb("cache.db", "", "", ""):
+dbFromTypes("cache.db", "", "", "", [Profile, Video])
+
+withDb:
   try:
     createTables()
   except DbError:
@@ -13,7 +15,7 @@ proc isOutdated*(profile: Profile): bool =
   getTime() - profile.updated > profileCacheTime
 
 proc cache*(profile: var Profile) =
-  withCustomDb("cache.db", "", "", ""):
+  withDb:
     try:
       let p = Profile.getOne("lower(username) = ?", toLower(profile.username))
       profile.id = p.id
@@ -23,7 +25,7 @@ proc cache*(profile: var Profile) =
         profile.insert()
 
 proc hasCachedProfile*(username: string): Option[Profile] =
-  withCustomDb("cache.db", "", "", ""):
+  withDb:
     try:
       let p = Profile.getOne("lower(username) = ?", toLower(username))
       doAssert not p.isOutdated
@@ -32,7 +34,7 @@ proc hasCachedProfile*(username: string): Option[Profile] =
       result = none(Profile)
 
 proc getCachedProfile*(username, agent: string; force=false): Future[Profile] {.async.} =
-  withCustomDb("cache.db", "", "", ""):
+  withDb:
     try:
       result.getOne("lower(username) = ?", toLower(username))
       doAssert not result.isOutdated

+ 7 - 6
src/prefs.nim

@@ -1,6 +1,5 @@
-import sequtils, macros
-import types
-import prefs_impl
+import strutils, sequtils, macros
+import prefs_impl, types
 
 export genUpdatePrefs
 
@@ -15,14 +14,16 @@ static:
   if missing.len > 0:
     raiseAssert("{$1} missing from the Prefs type" % missing.join(", "))
 
-withCustomDb("prefs.db", "", "", ""):
+dbFromTypes("prefs.db", "", "", "", [Prefs])
+
+withDb:
   try:
     createTables()
   except DbError:
     discard
 
 proc cache*(prefs: var Prefs) =
-  withCustomDb("prefs.db", "", "", ""):
+  withDb:
     try:
       doAssert prefs.id != 0
       discard Prefs.getOne("id = ?", prefs.id)
@@ -33,7 +34,7 @@ proc cache*(prefs: var Prefs) =
 proc getPrefs*(id: string): Prefs =
   if id.len == 0: return genDefaultPrefs()
 
-  withCustomDb("prefs.db", "", "", ""):
+  withDb:
     try:
       result.getOne("id = ?", id)
     except KeyError:

+ 4 - 1
src/types.nim

@@ -7,7 +7,7 @@ type
   VideoType* = enum
     vmap, m3u8, mp4
 
-db("cache.db", "", "", ""):
+dbTypes:
   type
     Profile* = object
       username*: string
@@ -62,6 +62,9 @@ db("cache.db", "", "", ""):
       replaceYouTube*: string
       replaceTwitter*: string
 
+
+dbFromTypes("cache.db", "", "", "", [Profile, Video])
+
 type
   QueryKind* = enum
     replies, media, multi, custom = "search"

+ 1 - 1
src/views/preferences.nim

@@ -1,4 +1,4 @@
-import tables, macros, strformat, xmltree
+import tables, macros, strformat, strutils, xmltree
 import karax/[karaxdsl, vdom, vstyles]
 
 import renderutils