Add Thread Stats. Close #73.

This commit is contained in:
Nicolas Stepien 2013-02-16 01:03:40 +01:00
parent a58b5c7670
commit 289c187686
4 changed files with 117 additions and 4 deletions

File diff suppressed because one or more lines are too long

View File

@ -53,7 +53,7 @@ a[href="javascript:;"] {
/* fixed, z-index */
#qp, #ihover,
#updater, #stats,
#updater, #thread-stats,
#header,
#qr, #watcher {
position: fixed;
@ -67,7 +67,7 @@ a[href="javascript:;"] {
#menu {
z-index: 60;
}
#updater, #stats {
#updater, #thread-stats {
z-index: 50;
}
#header:hover {
@ -199,6 +199,13 @@ a[href="javascript:;"] {
color: limegreen;
}
/* Thread Stats */
#thread-stats {
background: none;
border: none;
box-shadow: none;
}
/* Quote */
.deadlink {
text-decoration: none !important;

View File

@ -2413,6 +2413,47 @@ ImageHover =
$.ajax URL, onreadystatechange: (-> clearTimeout timeoutID if @status is 404),
type: 'head'
ThreadStats =
init: ->
return if g.VIEW isnt 'thread' or !Conf['Thread Stats']
@dialog = UI.dialog 'thread-stats', 'bottom: 0; left: 0;', """
<div class=move><span id=post-count>0</span> / <span id=file-count>0</span></div>
"""
@postCount = @fileCount = 0
@postCountEl = $ '#post-count', @dialog
@fileCountEl = $ '#file-count', @dialog
@fileLimit = # XXX need up to date data on this, check browser
switch g.BOARD
when 'a', 'b', 'v', 'co', 'mlp'
251
when 'vg'
376
else
151
Thread::callbacks.push
name: 'Thread Stats'
cb: @node
node: ->
for ID, post of @posts
ThreadStats.postCount++
ThreadStats.fileCount++ if post.file
ThreadStats.update()
$.on d, 'ThreadUpdate', ThreadStats.onUpdate
$.add d.body, ThreadStats.dialog
onUpdate: (e) ->
for post in e.detail.newPosts
ThreadStats.postCount++
ThreadStats.fileCount++ if post.file
ThreadStats.postCount -= e.detail.deletedPosts.length
ThreadStats.fileCount -= e.detail.deletedFiles.length
ThreadStats.update()
update: ->
@postCountEl.textContent = ThreadStats.postCount
@fileCountEl.textContent = ThreadStats.fileCount
(if ThreadStats.fileCount > ThreadStats.fileLimit then $.addClass else $.rmClass) ThreadStats.fileCountEl, 'warning'
ThreadUpdater =
init: ->
return if g.VIEW isnt 'thread' or !Conf['Thread Updater']

View File

@ -333,6 +333,7 @@ Main =
initFeature 'Reveal Spoilers', RevealSpoilers
initFeature 'Auto-GIF', AutoGIF
initFeature 'Image Hover', ImageHover
initFeature 'Thread Stats', ThreadStats
initFeature 'Thread Updater', ThreadUpdater
console.timeEnd 'All initializations'