Merge commit '5d0d957389c14a05eed8fe760ba4d713a8ccb57b'

This commit is contained in:
ccd0 2019-08-04 13:07:37 -07:00
commit 58cbca6c46
11 changed files with 89 additions and 87 deletions

View File

@ -45,11 +45,8 @@ sources := $(foreach d,$(source_directories),$(call sort_directory,$(d)))
uses_tests_enabled := \ uses_tests_enabled := \
src/classes/Post.coffee \ src/classes/Post.coffee \
src/site/SW.tinyboard.coffee \
src/General/Test.coffee \ src/General/Test.coffee \
src/Linkification/Linkify.coffee \ src/Linkification/Linkify.coffee \
src/Miscellaneous/Keybinds.coffee \
src/Monitoring/Unread.coffee \
src/main/Main.coffee src/main/Main.coffee
imports_src/globals/globals.js := \ imports_src/globals/globals.js := \

View File

@ -1,11 +1,11 @@
Redirect = Redirect =
archives: archives:
`<%= ```<%=
JSON.stringify(readJSON('archives.json'), null, 2) JSON.stringify(readJSON('archives.json'), null, 2)
.replace(/\n {2,}(?!{)/g, ' ') .replace(/\n {2,}(?!{)/g, ' ')
.replace(/\n/g, '\n ') .replace(/\n/g, '\n ')
.replace(/`/g, '\\`') .replace(/`/g, '\\`')
%>` %>```
init: -> init: ->
@selectArchives() @selectArchives()

View File

@ -1,16 +1,17 @@
<% if (readJSON('/.tests_enabled')) { %> <% if (readJSON('/.tests_enabled')) { %>
Test = Test =
init: -> init: ->
return if !Conf['Menu'] or g.VIEW not in ['index', 'thread'] return unless g.SITE.software is 'yotsuba' and g.VIEW in ['index', 'thread']
a = $.el 'a', if Conf['Menu']
textContent: 'Test HTML building' a = $.el 'a',
$.on a, 'click', @cb.testOne textContent: 'Test HTML building'
Menu.menu.addEntry $.on a, 'click', @cb.testOne
el: a Menu.menu.addEntry
open: (post) -> el: a
a.dataset.fullID = post.fullID open: (post) ->
true a.dataset.fullID = post.fullID
true
a2 = $.el 'a', a2 = $.el 'a',
textContent: 'Test HTML building' textContent: 'Test HTML building'
@ -18,6 +19,15 @@ Test =
Header.menu.addEntry Header.menu.addEntry
el: a2 el: a2
if Unread.posts
testOrderLink = $.el 'a',
textContent: 'Test Post Order'
$.on testOrderLink, 'click', @cb.testOrder
Header.menu.addEntry
el: testOrderLink
$.on d, 'keydown', @cb.keydown
assert: (condition) -> assert: (condition) ->
unless condition() unless condition()
new Notice 'warning', "Assertion failed: #{condition}", 30 new Notice 'warning', "Assertion failed: #{condition}", 30
@ -137,4 +147,26 @@ Test =
testAll: -> testAll: ->
Test.testAll() Test.testAll()
Header.menu.close() Header.menu.close()
testOrder: ->
list1 = (x.ID for x in Unread.order.order())
list2 = (+x.id.match(/\d*$/)[0] for x in $$ (if g.SITE.isOPContainerThread then "#{g.SITE.selectors.thread}, " else '') + g.SITE.selectors.postContainer)
pass = do ->
return false unless list1.length is list2.length
for i in [0...list1.length] by 1
return false if list1[i] isnt list2[i]
true
if pass
new Notice 'success', "Orders same (#{list1.length} posts)", 5
else
new Notice 'warning', 'Orders differ.', 30
c.log list1
c.log list2
keydown: (e) ->
return unless Keybinds.keyCode(e) is 'v'
return if e.target.nodeName in ['INPUT', 'TEXTAREA']
Test.testAll()
e.preventDefault()
e.stopPropagation()
<% } %> <% } %>

View File

@ -218,11 +218,6 @@ Keybinds =
when Conf['Next Post Quoting You'] when Conf['Next Post Quoting You']
return unless threadRoot and QuoteYou.db return unless threadRoot and QuoteYou.db
QuoteYou.cb.seek 'following' QuoteYou.cb.seek 'following'
<% if (readJSON('/.tests_enabled')) { %>
when 'v'
return unless threadRoot
Test.testAll()
<% } %>
else else
return return
e.preventDefault() e.preventDefault()

View File

@ -12,52 +12,52 @@ Favicon =
switch: -> switch: ->
items = { items = {
ferongr: [ ferongr: [
'<%= readBase64('ferongr.unreadDead.png') %>' '<%= readBase64("ferongr.unreadDead.png") %>'
'<%= readBase64('ferongr.unreadDeadY.png') %>' '<%= readBase64("ferongr.unreadDeadY.png") %>'
'<%= readBase64('ferongr.unreadSFW.png') %>' '<%= readBase64("ferongr.unreadSFW.png") %>'
'<%= readBase64('ferongr.unreadSFWY.png') %>' '<%= readBase64("ferongr.unreadSFWY.png") %>'
'<%= readBase64('ferongr.unreadNSFW.png') %>' '<%= readBase64("ferongr.unreadNSFW.png") %>'
'<%= readBase64('ferongr.unreadNSFWY.png') %>' '<%= readBase64("ferongr.unreadNSFWY.png") %>'
] ]
'xat-': [ 'xat-': [
'<%= readBase64('xat-.unreadDead.png') %>' '<%= readBase64("xat-.unreadDead.png") %>'
'<%= readBase64('xat-.unreadDeadY.png') %>' '<%= readBase64("xat-.unreadDeadY.png") %>'
'<%= readBase64('xat-.unreadSFW.png') %>' '<%= readBase64("xat-.unreadSFW.png") %>'
'<%= readBase64('xat-.unreadSFWY.png') %>' '<%= readBase64("xat-.unreadSFWY.png") %>'
'<%= readBase64('xat-.unreadNSFW.png') %>' '<%= readBase64("xat-.unreadNSFW.png") %>'
'<%= readBase64('xat-.unreadNSFWY.png') %>' '<%= readBase64("xat-.unreadNSFWY.png") %>'
] ]
Mayhem: [ Mayhem: [
'<%= readBase64('Mayhem.unreadDead.png') %>' '<%= readBase64("Mayhem.unreadDead.png") %>'
'<%= readBase64('Mayhem.unreadDeadY.png') %>' '<%= readBase64("Mayhem.unreadDeadY.png") %>'
'<%= readBase64('Mayhem.unreadSFW.png') %>' '<%= readBase64("Mayhem.unreadSFW.png") %>'
'<%= readBase64('Mayhem.unreadSFWY.png') %>' '<%= readBase64("Mayhem.unreadSFWY.png") %>'
'<%= readBase64('Mayhem.unreadNSFW.png') %>' '<%= readBase64("Mayhem.unreadNSFW.png") %>'
'<%= readBase64('Mayhem.unreadNSFWY.png') %>' '<%= readBase64("Mayhem.unreadNSFWY.png") %>'
] ]
'4chanJS': [ '4chanJS': [
'<%= readBase64('4chanJS.unreadDead.png') %>' '<%= readBase64("4chanJS.unreadDead.png") %>'
'<%= readBase64('4chanJS.unreadDeadY.png') %>' '<%= readBase64("4chanJS.unreadDeadY.png") %>'
'<%= readBase64('4chanJS.unreadSFW.png') %>' '<%= readBase64("4chanJS.unreadSFW.png") %>'
'<%= readBase64('4chanJS.unreadSFWY.png') %>' '<%= readBase64("4chanJS.unreadSFWY.png") %>'
'<%= readBase64('4chanJS.unreadNSFW.png') %>' '<%= readBase64("4chanJS.unreadNSFW.png") %>'
'<%= readBase64('4chanJS.unreadNSFWY.png') %>' '<%= readBase64("4chanJS.unreadNSFWY.png") %>'
] ]
Original: [ Original: [
'<%= readBase64('Original.unreadDead.png') %>' '<%= readBase64("Original.unreadDead.png") %>'
'<%= readBase64('Original.unreadDeadY.png') %>' '<%= readBase64("Original.unreadDeadY.png") %>'
'<%= readBase64('Original.unreadSFW.png') %>' '<%= readBase64("Original.unreadSFW.png") %>'
'<%= readBase64('Original.unreadSFWY.png') %>' '<%= readBase64("Original.unreadSFWY.png") %>'
'<%= readBase64('Original.unreadNSFW.png') %>' '<%= readBase64("Original.unreadNSFW.png") %>'
'<%= readBase64('Original.unreadNSFWY.png') %>' '<%= readBase64("Original.unreadNSFWY.png") %>'
] ]
'Metro': [ 'Metro': [
'<%= readBase64('Metro.unreadDead.png') %>' '<%= readBase64("Metro.unreadDead.png") %>'
'<%= readBase64('Metro.unreadDeadY.png') %>' '<%= readBase64("Metro.unreadDeadY.png") %>'
'<%= readBase64('Metro.unreadSFW.png') %>' '<%= readBase64("Metro.unreadSFW.png") %>'
'<%= readBase64('Metro.unreadSFWY.png') %>' '<%= readBase64("Metro.unreadSFWY.png") %>'
'<%= readBase64('Metro.unreadNSFW.png') %>' '<%= readBase64("Metro.unreadNSFW.png") %>'
'<%= readBase64('Metro.unreadNSFWY.png') %>' '<%= readBase64("Metro.unreadNSFWY.png") %>'
] ]
} }
items = $.getOwn(items, Conf['favicon']) items = $.getOwn(items, Conf['favicon'])
@ -81,5 +81,5 @@ Favicon =
SFW: '//s.4cdn.org/image/favicon-ws.ico' SFW: '//s.4cdn.org/image/favicon-ws.ico'
NSFW: '//s.4cdn.org/image/favicon.ico' NSFW: '//s.4cdn.org/image/favicon.ico'
dead: 'data:image/gif;base64,<%= readBase64('dead.gif') %>' dead: 'data:image/gif;base64,<%= readBase64("dead.gif") %>'
logo: 'data:image/png;base64,<%= readBase64('/src/meta/icon128.png') %>' logo: 'data:image/png;base64,<%= readBase64("/src/meta/icon128.png") %>'

View File

@ -91,7 +91,7 @@ ThreadUpdater =
http://freesound.org/people/pierrecartoons1979/sounds/90112/ http://freesound.org/people/pierrecartoons1979/sounds/90112/
cc-by-nc-3.0 cc-by-nc-3.0
### ###
beep: 'data:audio/wav;base64,<%= readBase64('beep.wav') %>' beep: 'data:audio/wav;base64,<%= readBase64("beep.wav") %>'
playBeep: -> playBeep: ->
{audio} = ThreadUpdater {audio} = ThreadUpdater

View File

@ -29,27 +29,6 @@ Unread =
name: 'Unread' name: 'Unread'
cb: @addPost cb: @addPost
<% if (readJSON('/.tests_enabled')) { %>
testLink = $.el 'a',
textContent: 'Test Post Order'
$.on testLink, 'click', ->
list1 = (x.ID for x in Unread.order.order())
list2 = (+x.id.match(/\d*$/)[0] for x in $$ (if g.SITE.isOPContainerThread then "#{g.SITE.selectors.thread}, " else '') + g.SITE.selectors.postContainer)
pass = do ->
return false unless list1.length is list2.length
for i in [0...list1.length] by 1
return false if list1[i] isnt list2[i]
true
if pass
new Notice 'success', "Orders same (#{list1.length} posts)", 5
else
new Notice 'warning', 'Orders differ.', 30
c.log list1
c.log list2
Header.menu.addEntry
el: testLink
<% } %>
node: -> node: ->
Unread.thread = @ Unread.thread = @
Unread.title = d.title Unread.title = d.title

View File

@ -1182,4 +1182,4 @@ Config =
hiddenPSAList: [{}] hiddenPSAList: [{}]
knownBanners: '<%= readJSON('banners.json').join(',') %>' knownBanners: '<%= readJSON("banners.json").join(",") %>'

View File

@ -671,7 +671,8 @@ Main =
['Flash Features', Flash] ['Flash Features', Flash]
['Reply Pruning', ReplyPruning] ['Reply Pruning', ReplyPruning]
['Mod Contact Links', ModContact] ['Mod Contact Links', ModContact]
<% if (readJSON('/.tests_enabled')) { %>
['Build Test', Test]
<% } %>
] ]
<% if (readJSON('/.tests_enabled')) { %>
Main.features.push ['Build Test', Test]
<% } %>

View File

@ -396,8 +396,8 @@ do ->
$.modifiedClick = (e) -> $.modifiedClick = (e) ->
e.shiftKey or e.altKey or e.ctrlKey or e.metaKey or e.button isnt 0 e.shiftKey or e.altKey or e.ctrlKey or e.metaKey or e.button isnt 0
$.open =
<% if (type === 'userscript') { %> <% if (type === 'userscript') { %>
$.open =
if GM?.openInTab? if GM?.openInTab?
GM.openInTab GM.openInTab
else if GM_openInTab? else if GM_openInTab?
@ -405,6 +405,7 @@ $.open =
else else
(url) -> window.open url, '_blank' (url) -> window.open url, '_blank'
<% } else { %> <% } else { %>
$.open =
(url) -> window.open url, '_blank' (url) -> window.open url, '_blank'
<% } %> <% } %>

View File

@ -25,9 +25,6 @@ SW.tinyboard =
'Banner' 'Banner'
'Flash Features' 'Flash Features'
'Reply Pruning' 'Reply Pruning'
<% if (readJSON('/.tests_enabled')) { %>
'Build Test'
<% } %>
] ]
detect: -> detect: ->