Add more preferences
This commit is contained in:
		
							parent
							
								
									7eb66d65aa
								
							
						
					
					
						commit
						45d88da3d9
					
				| 
						 | 
				
			
			@ -386,6 +386,7 @@ video, .video-container img {
 | 
			
		|||
    padding: 0 2em;
 | 
			
		||||
    line-height: 2em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.show-more a:hover {
 | 
			
		||||
    background-color: #282828;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -441,7 +442,6 @@ video, .video-container img {
 | 
			
		|||
    text-align: left;
 | 
			
		||||
    vertical-align: top;
 | 
			
		||||
    max-width: 32%;
 | 
			
		||||
    position: sticky;
 | 
			
		||||
    top: 50px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,6 +32,19 @@ const prefList*: Table[string, seq[Pref]] = {
 | 
			
		|||
 | 
			
		||||
    Pref(kind: checkbox, name: "autoplayGifs", label: "Autoplay gifs",
 | 
			
		||||
         defaultState: true),
 | 
			
		||||
  ],
 | 
			
		||||
 | 
			
		||||
  "Display": @[
 | 
			
		||||
    Pref(kind: checkbox, name: "hideTweetStats",
 | 
			
		||||
         label: "Hide tweet stats (replies, retweets, likes",
 | 
			
		||||
         defaultState: false),
 | 
			
		||||
 | 
			
		||||
    Pref(kind: checkbox, name: "hideBanner", label: "Hide profile banner",
 | 
			
		||||
         defaultState: false),
 | 
			
		||||
 | 
			
		||||
    Pref(kind: checkbox, name: "stickyProfile",
 | 
			
		||||
         label: "Make profile sidebar stick to top",
 | 
			
		||||
         defaultState: true)
 | 
			
		||||
  ]
 | 
			
		||||
}.toTable
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,10 +22,8 @@ db("cache.db", "", "", ""):
 | 
			
		|||
      tweets*: string
 | 
			
		||||
      likes*: string
 | 
			
		||||
      media*: string
 | 
			
		||||
      verified* {.
 | 
			
		||||
          dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      protected* {.
 | 
			
		||||
          dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      verified* {.dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      protected* {.dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      joinDate* {.
 | 
			
		||||
        dbType: "INTEGER"
 | 
			
		||||
        parseIt: it.i.fromUnix()
 | 
			
		||||
| 
						 | 
				
			
			@ -49,17 +47,14 @@ db("cache.db", "", "", ""):
 | 
			
		|||
          parseIt: parseEnum[VideoType](it.s),
 | 
			
		||||
          formatIt: $it,
 | 
			
		||||
        .}: VideoType
 | 
			
		||||
      available* {.
 | 
			
		||||
          dbType: "STRING",
 | 
			
		||||
          parseIt: parseBool(it.s)
 | 
			
		||||
          formatIt: $it
 | 
			
		||||
        .}: bool
 | 
			
		||||
      available* {.dbType: "STRING", parseIt: parseBool(it.s) formatIt: $it.}: bool
 | 
			
		||||
 | 
			
		||||
    Prefs* = object
 | 
			
		||||
      videoPlayback* {.
 | 
			
		||||
        dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      autoplayGifs* {.
 | 
			
		||||
        dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      videoPlayback*  {.dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      autoplayGifs*   {.dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      hideTweetStats* {.dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      hideBanner*     {.dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
      stickyProfile*  {.dbType: "STRING", parseIt: parseBool(it.s), formatIt: $it.}: bool
 | 
			
		||||
 | 
			
		||||
type
 | 
			
		||||
  QueryKind* = enum
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -70,10 +70,12 @@ proc renderBanner(profile: Profile): VNode =
 | 
			
		|||
proc renderProfile*(profile: Profile; timeline: Timeline;
 | 
			
		||||
                    photoRail: seq[GalleryPhoto]; prefs: Prefs): VNode =
 | 
			
		||||
  buildHtml(tdiv(class="profile-tabs")):
 | 
			
		||||
    tdiv(class="profile-banner"):
 | 
			
		||||
      renderBanner(profile)
 | 
			
		||||
    if not prefs.hideBanner:
 | 
			
		||||
      tdiv(class="profile-banner"):
 | 
			
		||||
        renderBanner(profile)
 | 
			
		||||
 | 
			
		||||
    tdiv(class="profile-tab"):
 | 
			
		||||
    let sticky = if prefs.stickyProfile: "sticky" else: "unset"
 | 
			
		||||
    tdiv(class="profile-tab", style={position: sticky}):
 | 
			
		||||
      renderProfileCard(profile)
 | 
			
		||||
      if photoRail.len > 0:
 | 
			
		||||
        renderPhotoRail(profile, photoRail)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -210,7 +210,8 @@ proc renderTweet*(tweet: Tweet; prefs: Prefs; class="";
 | 
			
		|||
        elif tweet.poll.isSome:
 | 
			
		||||
          renderPoll(tweet.poll.get())
 | 
			
		||||
 | 
			
		||||
        renderStats(tweet.stats)
 | 
			
		||||
        if not prefs.hideTweetStats:
 | 
			
		||||
          renderStats(tweet.stats)
 | 
			
		||||
 | 
			
		||||
        if tweet.hasThread and "timeline" in class:
 | 
			
		||||
          a(class="show-thread", href=getLink(tweet)):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue