From 5a446f71921b23e481cc5a1318ddc6b51be04fb8 Mon Sep 17 00:00:00 2001
From: AgarthaCrack <8vtcom37@addymail.com>
Date: Tue, 15 Apr 2025 23:37:08 +0000
Subject: [PATCH] add code
---
Rakefile | 109 +
admin-test.php | 4447 ++++
admin.php | 4388 ++++
auth-test.php | 422 +
auth.php | 451 +
block_resync_removed | 0
boardlist.txt | 1 +
captcha-test.php | 1127 +
captcha.php | 1075 +
catalog-test.php | 553 +
catalog.php | 553 +
clippy.html | 77 +
config/ads/adblock.txt | 1 +
config/ads/nws.bottom.txt | 1 +
config/ads/nws.middle.txt | 1 +
config/ads/nws.top.txt | 1 +
config/ads/ws.bottom.txt | 1 +
config/ads/ws.middle.txt | 1 +
config/ads/ws.top.txt | 1 +
config/boards/3.config.ini | 14 +
config/boards/a.config.ini | 45 +
config/boards/aco.config.ini | 27 +
config/boards/adv.config.ini | 22 +
config/boards/an.config.ini | 14 +
config/boards/asp.config.ini | 17 +
config/boards/b.config.ini | 101 +
config/boards/bant.config.ini | 78 +
config/boards/biz.config.ini | 26 +
config/boards/c.config.ini | 17 +
config/boards/cgl.config.ini | 14 +
config/boards/ck.config.ini | 18 +
config/boards/cm.config.ini | 20 +
config/boards/co.config.ini | 34 +
config/boards/d.config.ini | 23 +
config/boards/diy.config.ini | 14 +
config/boards/e.config.ini | 23 +
config/boards/f.config.ini | 50 +
config/boards/fa.config.ini | 18 +
config/boards/fit.config.ini | 18 +
config/boards/g.config.ini | 29 +
config/boards/gd.config.ini | 30 +
config/boards/gif.config.ini | 47 +
config/boards/h.config.ini | 23 +
config/boards/hc.config.ini | 32 +
config/boards/his.config.ini | 31 +
config/boards/hm.config.ini | 28 +
config/boards/hr.config.ini | 34 +
config/boards/i.config.ini | 33 +
config/boards/ic.config.ini | 17 +
config/boards/int.config.ini | 29 +
config/boards/j.config.ini | 156 +
config/boards/jp.config.ini | 49 +
config/boards/k.config.ini | 21 +
config/boards/lgbt.config.ini | 25 +
config/boards/lit.config.ini | 26 +
config/boards/m.config.ini | 19 +
config/boards/mlp.config.ini | 40 +
config/boards/mu.config.ini | 16 +
config/boards/n.config.ini | 14 +
config/boards/news.config.ini | 43 +
config/boards/o.config.ini | 14 +
config/boards/out.config.ini | 25 +
config/boards/p.config.ini | 26 +
config/boards/po.config.ini | 26 +
config/boards/pol.config.ini | 121 +
config/boards/pw.config.ini | 17 +
config/boards/qa.config.ini | 28 +
config/boards/qb.config.ini | 16 +
config/boards/qst.config.ini | 79 +
config/boards/r.config.ini | 26 +
config/boards/r9k.config.ini | 42 +
config/boards/s.config.ini | 34 +
config/boards/s4s.config.ini | 79 +
config/boards/sci.config.ini | 33 +
config/boards/soc.config.ini | 51 +
config/boards/sp.config.ini | 40 +
config/boards/t.config.ini | 21 +
config/boards/test.config.ini | 217 +
config/boards/tg.config.ini | 46 +
config/boards/toy.config.ini | 18 +
config/boards/trash.config.ini | 42 +
config/boards/trv.config.ini | 27 +
config/boards/tv.config.ini | 35 +
config/boards/u.config.ini | 27 +
config/boards/v.config.ini | 59 +
config/boards/vg.config.ini | 64 +
config/boards/vip.config.ini | 41 +
config/boards/vm.config.ini | 39 +
config/boards/vmg.config.ini | 39 +
config/boards/vp.config.ini | 26 +
config/boards/vr.config.ini | 32 +
config/boards/vrpg.config.ini | 39 +
config/boards/vst.config.ini | 39 +
config/boards/vt.config.ini | 47 +
config/boards/w.config.ini | 31 +
config/boards/wg.config.ini | 31 +
config/boards/wsg.config.ini | 44 +
config/boards/wsr.config.ini | 23 +
config/boards/x.config.ini | 14 +
config/boards/xs.config.ini | 14 +
config/boards/y.config.ini | 23 +
config/captcha_config.ini | 0
config/categories/nws.config.ini | 98 +
config/categories/ws.config.ini | 95 +
config/cloudflare_config.ini | 0
config/config_db.php | 0
config/global_config.ini | 664 +
config/global_strings.ini | 379 +
css/0ch.css | 1725 ++
css/burichan.css | 320 +
css/burichannew.css | 1682 ++
css/catalog_0ch.css | 1669 ++
css/catalog_burichan_new.css | 1765 ++
css/catalog_futaba_new.css | 1775 ++
css/catalog_mobile.css | 396 +
css/catalog_photon.css | 1785 ++
css/catalog_spooky.css | 1888 ++
css/catalog_spooky2017.css | 1894 ++
css/catalog_tomorrow.css | 1791 ++
css/catalog_yotsuba_b_new.css | 1816 ++
css/catalog_yotsuba_new.css | 1804 ++
css/flags.css | 268 +
css/futaba.css | 320 +
css/futabanew.css | 1676 ++
css/janichan.css | 1400 +
css/md2016.css | 435 +
css/photon.css | 1706 ++
css/spooky.css | 1821 ++
css/spooky2017.css | 1744 ++
css/tegaki-test.css | 666 +
css/tegaki.css | 670 +
css/tomorrow.css | 1734 ++
css/yotsuba.css | 457 +
css/yotsubamobile.css | 1035 +
css/yotsubanew.css | 1731 ++
css/yotsublue.css | 457 +
css/yotsubluemobile.css | 1030 +
css/yotsubluenew.css | 1733 ++
derefer.php | 48 +
emotes_xa22.php | 665 +
footer-test.txt | 14 +
footer-ws.txt | 14 +
footer.txt | 14 +
forms/ban.php | 327 +
forms/report-test.php | 205 +
forms/report.php | 205 +
globalmsg.txt | 0
header-sys.txt | 97 +
header-test.txt | 100 +
header-ws.txt | 106 +
header.txt | 106 +
imgboard-test.php | 10433 ++++++++
imgboard.php | 10402 ++++++++
imgtop/banned_dev.js | 398 +
js/catalog-test.js | 3613 +++
js/catalog.js | 3613 +++
js/catalog.min.js | 2 +
js/catalog.min.map | 1 +
js/core-test.js | 2549 ++
js/core.js | 2567 ++
js/core.min.js | 2 +
js/core.min.map | 1 +
js/extension-test-sync2.js | 8967 +++++++
js/extension-test.js | 11227 ++++++++
js/extension.js | 11227 ++++++++
js/extension.min.js | 6 +
js/extension.min.map | 1 +
js/janitor-unminified.js | 1244 +
js/janitor.js | 1 +
js/minify.rb | 74 +
js/mod-unminified.js | 2208 ++
js/mod.js | 2 +
js/tcaptcha.js | 684 +
js/tcaptcha.min.js | 1 +
js/tegaki-test.js | 7665 ++++++
js/tegaki.min.js | 5 +
json-test.php | 725 +
json.php | 719 +
latest.php | 8 +
lib/GoogleAuthenticator.php | 201 +
lib/admin-test.php | 612 +
lib/admin.php | 603 +
lib/ads-test.php | 155 +
lib/ads.php | 145 +
lib/archives.php | 171 +
lib/auth-test.php | 594 +
lib/auth.php | 594 +
lib/board_flags_lgbt.php | 132 +
lib/board_flags_mlp.php | 102 +
lib/board_flags_pol.php | 72 +
lib/board_flags_test.php | 26 +
lib/captcha-test.php | 686 +
lib/captcha.php | 686 +
lib/db.php | 345 +
lib/db_pdo.php | 308 +
lib/geoip2-test.php | 115 +
lib/geoip2.php | 115 +
lib/global_constants.php | 6 +
lib/htmlpurifier/HTMLPurifier.standalone.php | 21873 ++++++++++++++++
.../ConfigSchema/Builder/ConfigSchema.php | 48 +
.../HTMLPurifier/ConfigSchema/Builder/Xml.php | 144 +
.../HTMLPurifier/ConfigSchema/Exception.php | 11 +
.../HTMLPurifier/ConfigSchema/Interchange.php | 47 +
.../ConfigSchema/Interchange/Directive.php | 89 +
.../ConfigSchema/Interchange/Id.php | 58 +
.../ConfigSchema/InterchangeBuilder.php | 226 +
.../HTMLPurifier/ConfigSchema/Validator.php | 248 +
.../ConfigSchema/ValidatorAtom.php | 130 +
.../HTMLPurifier/ConfigSchema/schema.ser | Bin 0 -> 15000 bytes
.../schema/Attr.AllowedClasses.txt | 8 +
.../schema/Attr.AllowedFrameTargets.txt | 12 +
.../ConfigSchema/schema/Attr.AllowedRel.txt | 9 +
.../ConfigSchema/schema/Attr.AllowedRev.txt | 9 +
.../schema/Attr.ClassUseCDATA.txt | 19 +
.../schema/Attr.DefaultImageAlt.txt | 11 +
.../schema/Attr.DefaultInvalidImage.txt | 9 +
.../schema/Attr.DefaultInvalidImageAlt.txt | 8 +
.../schema/Attr.DefaultTextDir.txt | 10 +
.../ConfigSchema/schema/Attr.EnableID.txt | 16 +
.../schema/Attr.ForbiddenClasses.txt | 8 +
.../ConfigSchema/schema/Attr.IDBlacklist.txt | 5 +
.../schema/Attr.IDBlacklistRegexp.txt | 9 +
.../ConfigSchema/schema/Attr.IDPrefix.txt | 12 +
.../schema/Attr.IDPrefixLocal.txt | 14 +
.../schema/AutoFormat.AutoParagraph.txt | 31 +
.../ConfigSchema/schema/AutoFormat.Custom.txt | 12 +
.../schema/AutoFormat.DisplayLinkURI.txt | 11 +
.../schema/AutoFormat.Linkify.txt | 12 +
.../AutoFormat.PurifierLinkify.DocURL.txt | 12 +
.../schema/AutoFormat.PurifierLinkify.txt | 12 +
...rmat.RemoveEmpty.RemoveNbsp.Exceptions.txt | 11 +
.../AutoFormat.RemoveEmpty.RemoveNbsp.txt | 15 +
.../schema/AutoFormat.RemoveEmpty.txt | 46 +
...utoFormat.RemoveSpansWithoutAttributes.txt | 11 +
.../schema/CSS.AllowImportant.txt | 8 +
.../ConfigSchema/schema/CSS.AllowTricky.txt | 11 +
.../ConfigSchema/schema/CSS.AllowedFonts.txt | 12 +
.../schema/CSS.AllowedProperties.txt | 18 +
.../ConfigSchema/schema/CSS.DefinitionRev.txt | 11 +
.../schema/CSS.ForbiddenProperties.txt | 13 +
.../ConfigSchema/schema/CSS.MaxImgLength.txt | 16 +
.../ConfigSchema/schema/CSS.Proprietary.txt | 10 +
.../ConfigSchema/schema/CSS.Trusted.txt | 9 +
.../schema/Cache.DefinitionImpl.txt | 14 +
.../schema/Cache.SerializerPath.txt | 13 +
.../schema/Cache.SerializerPermissions.txt | 11 +
.../schema/Core.AggressivelyFixLt.txt | 18 +
.../schema/Core.AllowHostnameUnderscore.txt | 16 +
.../schema/Core.CollectErrors.txt | 12 +
.../schema/Core.ColorKeywords.txt | 29 +
.../schema/Core.ConvertDocumentToFragment.txt | 14 +
.../Core.DirectLexLineNumberSyncInterval.txt | 17 +
.../schema/Core.DisableExcludes.txt | 14 +
.../ConfigSchema/schema/Core.EnableIDNA.txt | 9 +
.../ConfigSchema/schema/Core.Encoding.txt | 15 +
.../schema/Core.EscapeInvalidChildren.txt | 12 +
.../schema/Core.EscapeInvalidTags.txt | 7 +
.../schema/Core.EscapeNonASCIICharacters.txt | 13 +
.../schema/Core.HiddenElements.txt | 19 +
.../ConfigSchema/schema/Core.Language.txt | 10 +
.../ConfigSchema/schema/Core.LexerImpl.txt | 34 +
.../schema/Core.MaintainLineNumbers.txt | 16 +
.../schema/Core.NormalizeNewlines.txt | 11 +
.../schema/Core.RemoveInvalidImg.txt | 12 +
.../Core.RemoveProcessingInstructions.txt | 11 +
.../schema/Core.RemoveScriptContents.txt | 12 +
.../ConfigSchema/schema/Filter.Custom.txt | 11 +
.../Filter.ExtractStyleBlocks.Escaping.txt | 14 +
.../Filter.ExtractStyleBlocks.Scope.txt | 29 +
.../Filter.ExtractStyleBlocks.TidyImpl.txt | 16 +
.../schema/Filter.ExtractStyleBlocks.txt | 74 +
.../ConfigSchema/schema/Filter.YouTube.txt | 16 +
.../ConfigSchema/schema/HTML.Allowed.txt | 25 +
.../schema/HTML.AllowedAttributes.txt | 19 +
.../schema/HTML.AllowedComments.txt | 10 +
.../schema/HTML.AllowedCommentsRegexp.txt | 15 +
.../schema/HTML.AllowedElements.txt | 23 +
.../schema/HTML.AllowedModules.txt | 20 +
.../schema/HTML.Attr.Name.UseCDATA.txt | 11 +
.../ConfigSchema/schema/HTML.BlockWrapper.txt | 18 +
.../ConfigSchema/schema/HTML.CoreModules.txt | 23 +
.../schema/HTML.CustomDoctype.txt | 9 +
.../ConfigSchema/schema/HTML.DefinitionID.txt | 33 +
.../schema/HTML.DefinitionRev.txt | 16 +
.../ConfigSchema/schema/HTML.Doctype.txt | 11 +
.../schema/HTML.FlashAllowFullScreen.txt | 11 +
.../schema/HTML.ForbiddenAttributes.txt | 21 +
.../schema/HTML.ForbiddenElements.txt | 20 +
.../ConfigSchema/schema/HTML.MaxImgLength.txt | 14 +
.../ConfigSchema/schema/HTML.Nofollow.txt | 7 +
.../ConfigSchema/schema/HTML.Parent.txt | 12 +
.../ConfigSchema/schema/HTML.Proprietary.txt | 12 +
.../ConfigSchema/schema/HTML.SafeEmbed.txt | 13 +
.../ConfigSchema/schema/HTML.SafeIframe.txt | 13 +
.../ConfigSchema/schema/HTML.SafeObject.txt | 13 +
.../schema/HTML.SafeScripting.txt | 10 +
.../ConfigSchema/schema/HTML.Strict.txt | 9 +
.../ConfigSchema/schema/HTML.TargetBlank.txt | 8 +
.../ConfigSchema/schema/HTML.TidyAdd.txt | 8 +
.../ConfigSchema/schema/HTML.TidyLevel.txt | 24 +
.../ConfigSchema/schema/HTML.TidyRemove.txt | 8 +
.../ConfigSchema/schema/HTML.Trusted.txt | 9 +
.../ConfigSchema/schema/HTML.XHTML.txt | 11 +
.../schema/Output.CommentScriptContents.txt | 10 +
.../schema/Output.FixInnerHTML.txt | 15 +
.../schema/Output.FlashCompat.txt | 11 +
.../ConfigSchema/schema/Output.Newline.txt | 13 +
.../ConfigSchema/schema/Output.SortAttr.txt | 14 +
.../ConfigSchema/schema/Output.TidyFormat.txt | 25 +
.../ConfigSchema/schema/Test.ForceNoIconv.txt | 7 +
.../schema/URI.AllowedSchemes.txt | 17 +
.../ConfigSchema/schema/URI.Base.txt | 17 +
.../ConfigSchema/schema/URI.DefaultScheme.txt | 10 +
.../ConfigSchema/schema/URI.DefinitionID.txt | 11 +
.../ConfigSchema/schema/URI.DefinitionRev.txt | 11 +
.../ConfigSchema/schema/URI.Disable.txt | 14 +
.../schema/URI.DisableExternal.txt | 11 +
.../schema/URI.DisableExternalResources.txt | 13 +
.../schema/URI.DisableResources.txt | 15 +
.../ConfigSchema/schema/URI.Host.txt | 19 +
.../ConfigSchema/schema/URI.HostBlacklist.txt | 9 +
.../ConfigSchema/schema/URI.MakeAbsolute.txt | 13 +
.../ConfigSchema/schema/URI.Munge.txt | 83 +
.../schema/URI.MungeResources.txt | 17 +
.../schema/URI.MungeSecretKey.txt | 30 +
.../schema/URI.OverrideAllowedSchemes.txt | 9 +
.../schema/URI.SafeIframeRegexp.txt | 22 +
.../HTMLPurifier/ConfigSchema/schema/info.ini | 3 +
.../DefinitionCache/Serializer/gitignore | 0
.../HTMLPurifier/EntityLookup/entities.ser | 1 +
.../Filter/ExtractStyleBlocks.php | 338 +
.../HTMLPurifier/Filter/YouTube.php | 65 +
.../Language/classes/en-x-test.php | 9 +
.../Language/messages/en-x-test.php | 11 +
.../Language/messages/en-x-testmini.php | 12 +
.../HTMLPurifier/Language/messages/en.php | 55 +
.../standalone/HTMLPurifier/Lexer/PH5P.php | 4788 ++++
.../standalone/HTMLPurifier/Printer.php | 218 +
.../HTMLPurifier/Printer/CSSDefinition.php | 44 +
.../HTMLPurifier/Printer/ConfigForm.css | 10 +
.../HTMLPurifier/Printer/ConfigForm.js | 5 +
.../HTMLPurifier/Printer/ConfigForm.php | 447 +
.../HTMLPurifier/Printer/HTMLDefinition.php | 324 +
lib/ini.php | 124 +
lib/json.php | 14 +
lib/like_score-test.php | 671 +
lib/like_score.php | 671 +
lib/oekaki-test.php | 160 +
lib/oekaki.php | 160 +
lib/perk_options-test.php | 230 +
lib/perk_options.php | 230 +
lib/phash.php | 201 +
lib/postfilter-test.php | 3965 +++
lib/postfilter.php | 3915 +++
lib/rpc.php | 390 +
lib/rss.php | 72 +
lib/userpwd-test.php | 956 +
lib/userpwd.php | 956 +
lib/util.php | 516 +
modes/report-test.php | 851 +
modes/report.php | 665 +
plugins/broomcloset.php | 161 +
plugins/enhance_q.php | 42 +
plugins/robot9000.php | 250 +
plugins/yotsuba_plugins.php | 28 +
rebuildd-test.php | 130 +
rebuildd.php | 130 +
rid.php | 25 +
signin-test.php | 1027 +
signin.php | 1041 +
tasks/pass_mailer.php | 138 +
tasks/signin_mailer.php | 125 +
title_banners.txt | 339 +
views/imgboard-test.php | 738 +
views/imgboard.php | 739 +
views/pass_auth.tpl.php | 67 +
views/signin-test.tpl.php | 99 +
views/signin.tpl.php | 99 +
views/syncframe.html | 88 +
views/upboard.php | 993 +
wordfilters/asp.php | 103 +
wordfilters/ck.php | 38 +
wordfilters/global.php | 99 +
wordfilters/int.php | 38 +
wordfilters/test.php | 154 +
wordfilters/v.php | 201 +
wordfilters/vg.php | 99 +
wordfilters/vp.php | 99 +
xa24tb.php | 379 +
yotsuba_config.php | 122 +
390 files changed, 195936 insertions(+)
create mode 100644 Rakefile
create mode 100644 admin-test.php
create mode 100644 admin.php
create mode 100644 auth-test.php
create mode 100644 auth.php
create mode 100644 block_resync_removed
create mode 100644 boardlist.txt
create mode 100644 captcha-test.php
create mode 100644 captcha.php
create mode 100644 catalog-test.php
create mode 100644 catalog.php
create mode 100644 clippy.html
create mode 100644 config/ads/adblock.txt
create mode 100644 config/ads/nws.bottom.txt
create mode 100644 config/ads/nws.middle.txt
create mode 100644 config/ads/nws.top.txt
create mode 100644 config/ads/ws.bottom.txt
create mode 100644 config/ads/ws.middle.txt
create mode 100644 config/ads/ws.top.txt
create mode 100644 config/boards/3.config.ini
create mode 100644 config/boards/a.config.ini
create mode 100644 config/boards/aco.config.ini
create mode 100644 config/boards/adv.config.ini
create mode 100644 config/boards/an.config.ini
create mode 100644 config/boards/asp.config.ini
create mode 100644 config/boards/b.config.ini
create mode 100644 config/boards/bant.config.ini
create mode 100644 config/boards/biz.config.ini
create mode 100644 config/boards/c.config.ini
create mode 100644 config/boards/cgl.config.ini
create mode 100644 config/boards/ck.config.ini
create mode 100644 config/boards/cm.config.ini
create mode 100644 config/boards/co.config.ini
create mode 100644 config/boards/d.config.ini
create mode 100644 config/boards/diy.config.ini
create mode 100644 config/boards/e.config.ini
create mode 100644 config/boards/f.config.ini
create mode 100644 config/boards/fa.config.ini
create mode 100644 config/boards/fit.config.ini
create mode 100644 config/boards/g.config.ini
create mode 100644 config/boards/gd.config.ini
create mode 100644 config/boards/gif.config.ini
create mode 100644 config/boards/h.config.ini
create mode 100644 config/boards/hc.config.ini
create mode 100644 config/boards/his.config.ini
create mode 100644 config/boards/hm.config.ini
create mode 100644 config/boards/hr.config.ini
create mode 100644 config/boards/i.config.ini
create mode 100644 config/boards/ic.config.ini
create mode 100644 config/boards/int.config.ini
create mode 100644 config/boards/j.config.ini
create mode 100644 config/boards/jp.config.ini
create mode 100644 config/boards/k.config.ini
create mode 100644 config/boards/lgbt.config.ini
create mode 100644 config/boards/lit.config.ini
create mode 100644 config/boards/m.config.ini
create mode 100644 config/boards/mlp.config.ini
create mode 100644 config/boards/mu.config.ini
create mode 100644 config/boards/n.config.ini
create mode 100644 config/boards/news.config.ini
create mode 100644 config/boards/o.config.ini
create mode 100644 config/boards/out.config.ini
create mode 100644 config/boards/p.config.ini
create mode 100644 config/boards/po.config.ini
create mode 100644 config/boards/pol.config.ini
create mode 100644 config/boards/pw.config.ini
create mode 100644 config/boards/qa.config.ini
create mode 100644 config/boards/qb.config.ini
create mode 100644 config/boards/qst.config.ini
create mode 100644 config/boards/r.config.ini
create mode 100644 config/boards/r9k.config.ini
create mode 100644 config/boards/s.config.ini
create mode 100644 config/boards/s4s.config.ini
create mode 100644 config/boards/sci.config.ini
create mode 100644 config/boards/soc.config.ini
create mode 100644 config/boards/sp.config.ini
create mode 100644 config/boards/t.config.ini
create mode 100644 config/boards/test.config.ini
create mode 100644 config/boards/tg.config.ini
create mode 100644 config/boards/toy.config.ini
create mode 100644 config/boards/trash.config.ini
create mode 100644 config/boards/trv.config.ini
create mode 100644 config/boards/tv.config.ini
create mode 100644 config/boards/u.config.ini
create mode 100644 config/boards/v.config.ini
create mode 100644 config/boards/vg.config.ini
create mode 100644 config/boards/vip.config.ini
create mode 100644 config/boards/vm.config.ini
create mode 100644 config/boards/vmg.config.ini
create mode 100644 config/boards/vp.config.ini
create mode 100644 config/boards/vr.config.ini
create mode 100644 config/boards/vrpg.config.ini
create mode 100644 config/boards/vst.config.ini
create mode 100644 config/boards/vt.config.ini
create mode 100644 config/boards/w.config.ini
create mode 100644 config/boards/wg.config.ini
create mode 100644 config/boards/wsg.config.ini
create mode 100644 config/boards/wsr.config.ini
create mode 100644 config/boards/x.config.ini
create mode 100644 config/boards/xs.config.ini
create mode 100644 config/boards/y.config.ini
create mode 100644 config/captcha_config.ini
create mode 100644 config/categories/nws.config.ini
create mode 100644 config/categories/ws.config.ini
create mode 100644 config/cloudflare_config.ini
create mode 100644 config/config_db.php
create mode 100644 config/global_config.ini
create mode 100644 config/global_strings.ini
create mode 100644 css/0ch.css
create mode 100644 css/burichan.css
create mode 100644 css/burichannew.css
create mode 100644 css/catalog_0ch.css
create mode 100644 css/catalog_burichan_new.css
create mode 100644 css/catalog_futaba_new.css
create mode 100644 css/catalog_mobile.css
create mode 100644 css/catalog_photon.css
create mode 100644 css/catalog_spooky.css
create mode 100644 css/catalog_spooky2017.css
create mode 100644 css/catalog_tomorrow.css
create mode 100644 css/catalog_yotsuba_b_new.css
create mode 100644 css/catalog_yotsuba_new.css
create mode 100644 css/flags.css
create mode 100644 css/futaba.css
create mode 100644 css/futabanew.css
create mode 100644 css/janichan.css
create mode 100644 css/md2016.css
create mode 100644 css/photon.css
create mode 100644 css/spooky.css
create mode 100644 css/spooky2017.css
create mode 100644 css/tegaki-test.css
create mode 100644 css/tegaki.css
create mode 100644 css/tomorrow.css
create mode 100644 css/yotsuba.css
create mode 100644 css/yotsubamobile.css
create mode 100644 css/yotsubanew.css
create mode 100644 css/yotsublue.css
create mode 100644 css/yotsubluemobile.css
create mode 100644 css/yotsubluenew.css
create mode 100644 derefer.php
create mode 100644 emotes_xa22.php
create mode 100644 footer-test.txt
create mode 100644 footer-ws.txt
create mode 100644 footer.txt
create mode 100644 forms/ban.php
create mode 100644 forms/report-test.php
create mode 100644 forms/report.php
create mode 100644 globalmsg.txt
create mode 100644 header-sys.txt
create mode 100644 header-test.txt
create mode 100644 header-ws.txt
create mode 100644 header.txt
create mode 100644 imgboard-test.php
create mode 100644 imgboard.php
create mode 100644 imgtop/banned_dev.js
create mode 100644 js/catalog-test.js
create mode 100644 js/catalog.js
create mode 100644 js/catalog.min.js
create mode 100644 js/catalog.min.map
create mode 100644 js/core-test.js
create mode 100644 js/core.js
create mode 100644 js/core.min.js
create mode 100644 js/core.min.map
create mode 100644 js/extension-test-sync2.js
create mode 100644 js/extension-test.js
create mode 100644 js/extension.js
create mode 100644 js/extension.min.js
create mode 100644 js/extension.min.map
create mode 100644 js/janitor-unminified.js
create mode 100644 js/janitor.js
create mode 100644 js/minify.rb
create mode 100644 js/mod-unminified.js
create mode 100644 js/mod.js
create mode 100644 js/tcaptcha.js
create mode 100644 js/tcaptcha.min.js
create mode 100644 js/tegaki-test.js
create mode 100644 js/tegaki.min.js
create mode 100644 json-test.php
create mode 100644 json.php
create mode 100644 latest.php
create mode 100644 lib/GoogleAuthenticator.php
create mode 100644 lib/admin-test.php
create mode 100644 lib/admin.php
create mode 100644 lib/ads-test.php
create mode 100644 lib/ads.php
create mode 100644 lib/archives.php
create mode 100644 lib/auth-test.php
create mode 100644 lib/auth.php
create mode 100644 lib/board_flags_lgbt.php
create mode 100644 lib/board_flags_mlp.php
create mode 100644 lib/board_flags_pol.php
create mode 100644 lib/board_flags_test.php
create mode 100644 lib/captcha-test.php
create mode 100644 lib/captcha.php
create mode 100644 lib/db.php
create mode 100644 lib/db_pdo.php
create mode 100644 lib/geoip2-test.php
create mode 100644 lib/geoip2.php
create mode 100644 lib/global_constants.php
create mode 100644 lib/htmlpurifier/HTMLPurifier.standalone.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/Builder/Xml.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/Exception.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/Interchange.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/Interchange/Directive.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/Interchange/Id.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/InterchangeBuilder.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/Validator.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/ValidatorAtom.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema.ser
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.Language.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.Base.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.Host.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/ConfigSchema/schema/info.ini
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/DefinitionCache/Serializer/gitignore
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/EntityLookup/entities.ser
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Filter/ExtractStyleBlocks.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Filter/YouTube.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Language/classes/en-x-test.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Language/messages/en-x-test.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Language/messages/en-x-testmini.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Language/messages/en.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Lexer/PH5P.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Printer.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Printer/CSSDefinition.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Printer/ConfigForm.css
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Printer/ConfigForm.js
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Printer/ConfigForm.php
create mode 100644 lib/htmlpurifier/standalone/HTMLPurifier/Printer/HTMLDefinition.php
create mode 100644 lib/ini.php
create mode 100644 lib/json.php
create mode 100644 lib/like_score-test.php
create mode 100644 lib/like_score.php
create mode 100644 lib/oekaki-test.php
create mode 100644 lib/oekaki.php
create mode 100644 lib/perk_options-test.php
create mode 100644 lib/perk_options.php
create mode 100644 lib/phash.php
create mode 100644 lib/postfilter-test.php
create mode 100644 lib/postfilter.php
create mode 100644 lib/rpc.php
create mode 100644 lib/rss.php
create mode 100644 lib/userpwd-test.php
create mode 100644 lib/userpwd.php
create mode 100644 lib/util.php
create mode 100644 modes/report-test.php
create mode 100644 modes/report.php
create mode 100644 plugins/broomcloset.php
create mode 100644 plugins/enhance_q.php
create mode 100644 plugins/robot9000.php
create mode 100644 plugins/yotsuba_plugins.php
create mode 100644 rebuildd-test.php
create mode 100644 rebuildd.php
create mode 100644 rid.php
create mode 100644 signin-test.php
create mode 100644 signin.php
create mode 100644 tasks/pass_mailer.php
create mode 100644 tasks/signin_mailer.php
create mode 100644 title_banners.txt
create mode 100644 views/imgboard-test.php
create mode 100644 views/imgboard.php
create mode 100644 views/pass_auth.tpl.php
create mode 100644 views/signin-test.tpl.php
create mode 100644 views/signin.tpl.php
create mode 100644 views/syncframe.html
create mode 100644 views/upboard.php
create mode 100644 wordfilters/asp.php
create mode 100644 wordfilters/ck.php
create mode 100644 wordfilters/global.php
create mode 100644 wordfilters/int.php
create mode 100644 wordfilters/test.php
create mode 100644 wordfilters/v.php
create mode 100644 wordfilters/vg.php
create mode 100644 wordfilters/vp.php
create mode 100644 xa24tb.php
create mode 100644 yotsuba_config.php
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..088dc7b
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,109 @@
+require 'rake/testtask'
+require 'uglifier'
+require 'openssl'
+require 'json'
+require 'open3'
+require 'fileutils'
+
+Encoding.default_external = 'UTF-8'
+
+include Rake
+
+def minify_js(basename)
+ root = 'js'
+
+ u = Uglifier.new(
+ :harmony => true
+ #screw_ie8: true,
+ #source_map: {
+ # source_filename: "#{basename}#{version}.js",
+ # output_filename: "#{basename}.min#{version}.js"
+ #}
+ )
+
+ js, sm = u.compile_with_map(File.read("#{root}/#{basename}.js"))
+
+ #hash = OpenSSL::Digest::MD5.hexdigest(sm)[0,8]
+ #js << "\n//# sourceMappingURL=#{basename}.min.map?#{hash}"
+
+ out = if (basename =~ /-unminified$/)
+ "#{root}/#{basename.sub(/-.+$/, '')}.js"
+ else
+ "#{root}/#{basename}.min.js"
+ end
+
+ File.open(out, 'w') { |f| f.write js }
+ #File.open("#{root}/#{basename}.min.map", 'w') { |f| f.write sm }
+end
+
+desc 'Minify JavaScript and generate source maps'
+task :minify, [:js] do |t, args|
+ puts "Compiling #{args[:js]}.js"
+ minify_js(args[:js])
+end
+
+task :jshint, [:js] do |t, args|
+ root = 'js'
+
+ basename = args[:js]
+
+ if !basename
+ abort 'File not found.'
+ end
+
+ file = "#{root}/#{basename}.js"
+
+ if !File.exist?(file)
+ abort 'File not found.'
+ end
+
+ opts = {
+ laxbreak: true,
+ esversion: 6,
+ boss: true,
+ expr: true,
+ sub: true,
+ browser: true,
+ devel: true,
+ strict: 'implied',
+ multistr: true,
+ scripturl: true,
+ unused: 'vars',
+ evil: true,
+ '-W079' => true # no-native-reassign
+ }
+
+ opts[:globals] = Hash[[
+ '$', '$L', 'Chart', 'Feedback', 'Tip', 'APP', 'Tegaki', 'MathJax', 'Main', 'UA',
+ 'Draggable', 'Config', 'Parser', 'ThreadUpdater', 'SettingsMenu', 'QR', 'FC',
+ 'grecaptcha', 'Recaptcha', 'ados_refresh', 'style_group', 'StickyNav',
+ 'PostMenu', 'StorageSync', 'OGVPlayer', 'TCaptcha'
+ ].collect { |v| [v, false] }]
+
+ cfg_path = 'tmp_jshint.json'
+
+ File.write(cfg_path, opts.to_json)
+
+ puts "--> #{file}"
+ output, outerr, status = Open3.capture3('jshint', file, '--config', cfg_path)
+ puts output
+
+ FileUtils.rm(cfg_path)
+end
+
+namespace :concat do
+ desc 'Concatenate painter.js files'
+ task :painter do
+ puts 'Building painter.js'
+
+ root = 'js'
+ out_file = "#{root}/painter.js"
+ js = []
+
+ ['tegaki.js', 'painter-strings.js'].each do |file|
+ js << File.binread("#{root}/#{file}")
+ end
+
+ File.binwrite(out_file, js.join("\n"))
+ end
+end
diff --git a/admin-test.php b/admin-test.php
new file mode 100644
index 0000000..10febc5
--- /dev/null
+++ b/admin-test.php
@@ -0,0 +1,4447 @@
+
+include_once "yotsuba_config.php";
+require_once 'lib/util.php';
+/*
+if( isset( $_REQUEST["profile"] ) ) {
+ xhprof_enable( XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY );
+ register_shutdown_function( "xhprof_save" );
+}
+if ( isset($_REQUEST["sqlprofile"] )) {
+ $mysql_query_log = YES;
+}
+*/
+if( TEST_BOARD ) {
+ ini_set('display_errors', '1');
+ if( isset( $_REQUEST[ "profile" ] ) ) {
+ xhprof_enable();
+ register_shutdown_function( "xhprof_save" );
+ }
+}
+
+include_once 'lib/rpc.php';
+include_once 'lib/admin-test.php';
+include_once 'lib/auth.php';
+include_once 'lib/json.php';
+include_once 'lib/geoip2.php';
+
+//include "strings_e.php"; //String resource file
+define( SQLLOGBAN, 'banned_users' ); //Table (NOT DATABASE) used for holding banned users
+define( SQLLOGMOD, 'mod_users' ); //Table (NOT DATABASE) used for holding mod users
+define( SQLLOGDEL, 'del_log' ); //Table (NOT DATABASE) used for holding deletion log
+
+extract( $_POST, EXTR_SKIP );
+extract( $_GET, EXTR_SKIP );
+extract( $_COOKIE, EXTR_SKIP );
+
+//if( isset( $_REQUEST['id'] ) ) $id = $_REQUEST['id']; // weird bug?
+
+if( isset( $_POST[ 'id' ] ) && ctype_digit( $_POST[ 'id' ] ) ) $id = $_POST[ 'id' ];
+if( isset( $_GET[ 'id' ] ) && ctype_digit( $_GET[ 'id' ] ) ) $id = $_GET[ 'id' ];
+
+if( $argv[1] ) $admin = $argv[1];
+
+// FIXME whitelist
+unset( $dest );
+unset( $log );
+unset( $update_avg_secs );
+
+$access_allow = '';
+$access_deny = '';
+
+mysql_board_connect( BOARD_DIR );
+
+function janitor_votes_left()
+{
+ $user = $_COOKIE[ '4chan_auser' ];
+
+ $high = mysql_global_do( "SELECT count(id) FROM janitor_votes WHERE moderator = '%s'", $user );
+ $high = mysql_result( $high, 0, 0 );
+
+ $howmany = mysql_global_do( "SELECT COUNT(id) FROM janitor_apps WHERE closed=0 AND age>17", $high );
+
+ return mysql_result( $howmany, 0, 0 ) - $high;
+}
+
+function append_ban( $board, $ip )
+{
+ // run in background
+ $cmd = "nohup /usr/local/bin/suid_run_global bin/appendban $board $ip >/dev/null 2>&1 &";
+ print "User banned from /$board/";
+// print $cmd . "
"; //disabling this because it's ugly and leaks filepaths
+ exec( $cmd );
+}
+
+function https_self_url()
+{
+ return "/".BOARD_DIR."/admin";
+}
+
+// for lib/admin.php
+function delete_uploaded_files()
+{
+
+}
+
+function make_post_json($row)
+{
+ $nrow = array();
+
+ foreach( $row as $key => $val ) {
+ if( ctype_digit( $val ) || is_int( $val ) ) {
+ $val = (int)$val;
+ }
+
+ $nrow[ $key ] = $val;
+ }
+
+ return json_encode( $nrow );
+}
+
+function get_board_list() {
+ //mysql_global_call("SET character_set_results = 'utf8'");
+
+ $query = "SELECT dir, name FROM boardlist ORDER BY dir ASC";
+
+ $res = mysql_global_call($query);
+
+ if (!$res) {
+ return array();
+ }
+
+ $boards = array();
+
+ while ($dir = mysql_fetch_row($res)) {
+ $boards[$dir[0]] = $dir[1];
+ }
+
+ return $boards;
+}
+
+function is_board_valid($board, $allow_hidden = false) {
+ if (!$allow_hidden && ($board === 'test' || $board === 'j')) {
+ return false;
+ }
+
+ $query = "SELECT dir FROM boardlist WHERE dir = '%s' LIMIT 1";
+ $res = mysql_global_call($query, $board);
+
+ if (!$res) {
+ return false;
+ }
+
+ if (mysql_num_rows($res) === 1) {
+ return true;
+ }
+
+ return false;
+}
+
+function admin_clear_reports($board, $post_id) {
+ $query = "UPDATE reports SET cleared = 1 WHERE board = '%s' AND no = %d";
+
+ mysql_global_call($query, $board, $post_id);
+
+ $query = << $ban_len) {
+ $spent_len = $ban_len;
+ }
+ }
+ else {
+ $spent_len = $ban_len;
+ }
+
+ $recent_duration += $spent_len;
+ ++$recent_ban_count;
+ }
+ }
+
+ if ($recent_duration) {
+ $recent_duration = round($recent_duration / 86400.0);
+ }
+
+ return array(
+ 'total' => $total_count,
+ 'recent_bans' => $recent_ban_count,
+ 'recent_warns' => $recent_warn_count,
+ 'recent_days' => $recent_duration,
+ 'recent_permas' => $recent_perma_count
+ );
+}
+
+// Counts recently made threads by IP
+function admin_get_thread_history($ip) {
+ $long_ip = ip2long($ip);
+
+ if (!$long_ip) {
+ return false;
+ }
+
+ $sql = "SELECT COUNT(*) FROM user_actions WHERE action = 'new_thread' AND ip = $long_ip AND time >= DATE_SUB(NOW(), INTERVAL 60 MINUTE)";
+
+ $res = mysql_global_call($sql);
+
+ if (!$res) {
+ return false;
+ }
+
+ return (int)mysql_fetch_row($res)[0];
+}
+
+function admin_hash_4chan_pass($pass) {
+ $salt = file_get_contents(SALTFILE);
+
+ if (!$salt || !$pass) {
+ return '';
+ }
+
+ return sha1($pass . $salt);
+}
+
+function get_ban_history_html($ban_summary, $host = false) {
+ $ban_tip = array();
+
+ if ($ban_summary['recent_bans'] > 0) {
+ $ban_tip[] = $ban_summary['recent_bans'] . ' ban' . ($ban_summary['recent_bans'] > 1 ? 's' : '');
+ }
+
+ if ($ban_summary['recent_warns'] > 0) {
+ $ban_tip[] = $ban_summary['recent_warns'] . ' warning' . ($ban_summary['recent_warns'] > 1 ? 's' : '');
+ }
+
+ if ($ban_summary['recent_days'] > 0) {
+ $ban_tip[] = $ban_summary['recent_days'] . ' day'
+ . ($ban_summary['recent_days'] > 1 ? 's' : '')
+ . ' spent banned';
+ }
+
+ if ($ban_summary['recent_permas'] > 0) {
+ $ban_tip[] = $ban_summary['recent_permas'] . ' permaban' . ($ban_summary['recent_permas'] > 1 ? 's' : '');
+ }
+
+ $ban_tip = "Past 12 months history- " . implode('
- ', $ban_tip) . '
';
+
+ if ($host !== false) {
+ return "$ban_tip
[ {$ban_summary['total']} ban" .
+ (($ban_summary['total'] > 1) ? 's' : '') . " for this IP ]";
+ }
+ else {
+ return "$ban_tip
[ {$ban_summary['total']} ban" .
+ (($ban_summary['total'] > 1) ? 's' : '') . " for this Pass ]";
+ }
+}
+
+function ban_post( $no, $globalban, $length, $reason, $is_threadban = 0 )
+{
+ $query = mysql_board_call( "SELECT HIGH_PRIORITY * FROM `" . SQLLOG . "` WHERE no=" . intval( $no ) ); //FIXME use assoc
+ $row = mysql_fetch_assoc( $query );
+ if( !$row ) return "";
+ extract( $row, EXTR_OVERWRITE );
+
+ //list( $no, $sticky, $permasage, $closed, $now, $name, $email, $sub, $com, $host, $pwd, $filename, $ext, $w, $h, $tn_w, $tn_h, $tim, $time, $md5, $fsize, $root, $resto ) = $row;
+ $name = str_replace( ' !', ' #', $name );
+ $name = preg_replace( '/<[^>]+>/', '', $name ); // remove all remaining html crap
+
+ if( $host ) $reverse = gethostbyaddr( $host );
+ $displayhost = ( $reverse && $reverse != $host ) ? "$reverse ($host)" : $host;
+ $xff = '';
+
+ //$xffresult = mysql_board_call("select host from xff where board='%s' and postno=%d", BOARD_DIR, $no);
+ //$xffresult = mysql_global_call( "SELECT xff from xff where board='%s' AND postno='%d'", BOARD_DIR, $no );
+ //if( $xffrow = mysql_fetch_row( $xffresult ) ) {
+ // $xff = $xffrow[ 0 ];
+ // $xff_reverse = gethostbyaddr($xffrow[0]);
+ // $xff = ($xff_reverse && $xff_reverse!=$xffrow[0])?"$xff_reverse ($xff)":$xff;
+ //}
+ $board = BOARD_DIR;
+ $zonly = 0;
+
+ $bannedby = $_COOKIE[ '4chan_auser' ];
+ $pass_id = $row[ '4pass_id' ];
+ $post_json = make_post_json($row);
+
+ $result = mysql_global_do(
+ "INSERT INTO " . SQLLOGBAN . "
+ (board,global,zonly,name,host,reverse,xff,reason,length,admin,md5,4pass_id,post_num,post_time,post_json,admin_ip)
+ VALUES
+ ( '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s', %d, FROM_UNIXTIME(%d), '%s', '%s')",
+ $board, $globalban, $zonly, $name, $host, $reverse, $xff, $reason, $length, $bannedby, $md5, $pass_id, $no, $time, $post_json, $_SERVER['REMOTE_ADDR'] );
+
+ //('" . $board . "','" . $globalban . "','" . $zonly . "','" . mysql_escape_string( $name ) . "','" . $host . "','" . mysql_escape_string( $reverse ) . "','" . mysql_escape_string( $xff ) . "','" . mysql_escape_string( $reason ) . "','$length','" . mysql_escape_string( $bannedby ) . "','$md5','$pass_id',$no,FROM_UNIXTIME('$time'), '%s')", $post_json ) ) {
+ if( !$result ) {
+ echo S_SQLFAIL;
+ }
+
+ /*if( $ext != '' ) {
+ $salt = file_get_contents( SALTFILE );
+ $hash = sha1( BOARD_DIR . $no . $salt );
+ @copy( THUMB_DIR . "{$tim}s.jpg", BANTHUMB_DIR . "{$hash}s.jpg" );
+ }*/
+ /*
+ $afsize = (int)( $fsize > 0 );
+ validate_admin_cookies();
+ if( $is_threadban ) mysql_global_do( "INSERT INTO " . SQLLOGDEL . " (imgonly,postno,resto,board,name,sub,com,img,filename,admin,admin_ip) values('0',%d,%d,'%s','%s','%s','%s','%d','%s','%s','%s')", $no, $resto, SQLLOG, $name, $sub, $com, $afsize, $filename.$ext, $bannedby, $_SERVER['REMOTE_ADDR'] ); // FIXME do all this in one insert outside the write lock
+ */
+ echo "$displayhost banned.
\n";
+
+ return $host;
+}
+
+function cpban($no) {
+ $no = (int)$no;
+
+ if (!$no) {
+ die('Invalid thread number.');
+ }
+
+ $op_reason = htmlspecialchars($_POST['op_reason']);
+ $rep_reason = htmlspecialchars($_POST['rep_reason']);
+
+ if (!$op_reason || !$rep_reason) {
+ die('Ban reason cannot be empty.');
+ }
+
+ $op_days = (int)$_POST['op_days'];
+ $rep_days = (int)$_POST['rep_days'];
+
+ if ($op_days < 0 || $rep_days < 0 || $op_days > 9999 || $rep_days > 9999) {
+ die('Invalid ban length.');
+ }
+
+ $op_ban_end = date('YmdHis', time() + $op_days * (24 * 60 * 60));
+ $rep_ban_end = date('YmdHis', time() + $rep_days * (24 * 60 * 60));
+
+ $op_host = ban_post($no, 1, $op_ban_end, "$op_reason<>Thread Ban No.$no", 1);
+
+ if (!$op_host) {
+ die("Thread $no doesn't exist.");
+ }
+
+ $query = mysql_board_call("SELECT no, host FROM `" . SQLLOG . "` WHERE resto = $no AND host != '$op_host' GROUP BY host");
+
+ while ($row = mysql_fetch_assoc($query)) {
+ ban_post($row['no'], 1, $rep_ban_end, "$rep_reason<>Thread Ban No.$no", 1);
+ }
+
+ delete_post($no, false, null, 'threadban');
+
+ echo 'Done.
';
+}
+
+function delete_post($no, $imgonly, $template_id = null, $tool = null) {
+ $url = "/".BOARD_DIR."/post";
+
+ $post = array(
+ 'mode' => 'usrdel',
+ 'onlyimgdel' => $imgonly ? 'on' : '',
+ $no => 'delete',
+ 'remote_addr' => $_SERVER['REMOTE_ADDR']
+ );
+
+ if ($template_id) {
+ $post['template_id'] = $template_id;
+ }
+
+ if ($tool) {
+ $post['tool'] = $tool;
+ }
+
+ rpc_start_request("https://sys.int$url", $post, $_COOKIE, true);
+
+ // don't bother waiting to check for errors
+
+ return true;
+}
+
+function archive_thread($thread_id) {
+ $url = "/".BOARD_DIR."/post";
+
+ $post = array(
+ 'mode' => 'forcearchive',
+ 'id' => $thread_id
+ );
+
+ rpc_start_request("https://sys.int$url", $post, $_COOKIE, true);
+
+ // don't bother waiting to check for errors
+
+ return true;
+}
+
+function move_thread($thread_id, $board) {
+ $url = "/".BOARD_DIR."/post";
+
+ $post = array(
+ 'mode' => 'movethread',
+ 'id' => $thread_id,
+ 'board' => $board
+ );
+
+ rpc_start_request("https://sys.int$url", $post, $_COOKIE, true);
+
+ // don't bother waiting to check for errors
+
+ return true;
+}
+
+function rebuild_thread($no, &$error = '', $is_archived = false) {
+ $url = '/' . BOARD_DIR . '/post';
+
+ if (!$is_archived) {
+ $post = array(
+ 'mode' => 'rebuildadmin',
+ 'no' => $no
+ );
+ }
+ else {
+ $post = array();
+ $post['mode'] = 'rebuild_threads_by_id';
+ $post['ids'] = array($no);
+ $post = http_build_query($post);
+ }
+
+ rpc_start_request("https://sys.int$url", $post, $_COOKIE, true);
+
+ return true;
+}
+
+function rebuild_all(&$error = '') {
+ $url = '/' . BOARD_DIR . '/post';
+
+ $post = array(
+ 'mode' => 'rebuildall'
+ );
+
+ rpc_start_request("https://sys.int$url", $post, $_COOKIE, true);
+
+ return true;
+}
+
+function dir_contents( $dir )
+{
+ $d = opendir( $dir );
+ $a = array();
+ if( !$d ) return $a;
+
+ while( ( $f = readdir( $d ) ) !== false ) {
+ if( $f == "." || $f == ".." || $f == "" ) continue;
+ $a[ ] = $f;
+ }
+
+ closedir( $d );
+
+ return $a;
+}
+
+function clean()
+{
+ // Survive oversized boards.
+ set_time_limit(0);
+ ini_set("memory_limit", "-1");
+
+ $images = array();
+ $respages = array();
+ $indexpages = array();
+
+ if( PAGE_MAX > 0 ) {
+ print "Running cleanup...
Pruning orphaned posts...
";
+ $result = mysql_board_call( "select no from `%s` where resto>0 and resto not in (select no from `%s` where resto=0)", SQLLOG, SQLLOG );
+ $nos = mysql_column_array( $result );
+ if( count( $nos ) ) {
+ mysql_board_call( "delete from `" . SQLLOG . "` where no in (%s)", implode( $nos, "," ) );
+ foreach( $nos as $no ) {
+ print "$no pruned
";
+ }
+ }
+ }
+
+ //clearstatcache();
+
+ // get list of images that should exist
+ if (MOBILE_IMG_RESIZE) {
+ $cols = ',m_img'; // FIXME, only because not all boards have that column
+ }
+ $result = mysql_board_call( "select tim,filename,ext$cols from `" . SQLLOG . "` where ext != ''" );
+ while( $row = mysql_fetch_array( $result ) ) {
+ if( $row[ 'ext' ] == '.swf' ) {
+ $images[ "{$row[ 'filename' ]}{$row[ 'ext' ]}" ] = 1;
+ }
+ else {
+ $images[ "{$row[ 'tim' ]}{$row[ 'ext' ]}" ] = 1; // picture
+ $images[ "{$row[ 'tim' ]}s.jpg" ] = 1; // thumb
+
+ if (ENABLE_OEKAKI_REPLAYS) {
+ $images["{$row['tim']}.tgkr"] = 1; // oe animation
+ }
+
+ if (MOBILE_IMG_RESIZE) {
+ $images["{$row['tim']}m.jpg"] = 1; // resized
+ }
+ }
+ }
+
+ // get list of res pages that should exist
+ $result = mysql_board_call( "select no from `" . SQLLOG . "` where resto=0" );
+ while( $row = mysql_fetch_array( $result ) ) {
+ if( USE_GZIP == 1 ) {
+ $respages[ "{$row[ 'no' ]}.html.gz" ] = 1;
+
+ if (ENABLE_JSON) {
+ $respages[$row['no'] . '.json.gz'] = 1;
+
+ if (JSON_TAIL_SIZE) {
+ $respages[$row['no'] . '-tail.json.gz'] = 1;
+ }
+ }
+ }
+ else {
+ $respages[ "{$row[ 'no' ]}.html" ] = 1;
+
+ if (ENABLE_JSON) {
+ $respages[$row['no'] . '.json'] = 1;
+
+ if (JSON_TAIL_SIZE) {
+ $respages[$row['no'] . '-tail.json'] = 1;
+ }
+ }
+ }
+
+ if( JANITOR_BOARD ) $respages[ $row[ 'no' ] . '.html.php' ] = 1;
+ }
+
+ print "Cleaning src dir...
";
+ foreach( dir_contents( IMG_DIR ) as $filename ) {
+ if( $images[ $filename ] != 1 && !preg_match('/dmca_/', $filename) && $filename !== 'src') {
+ print "Deleted $filename
";
+ //if (file_exists(IMG_DIR . "$filename")) {
+ unlink(IMG_DIR . "$filename") or print "Couldn't delete!
";
+ //}
+ }
+ }
+
+ print "Cleaning thumb dir...
";
+ foreach( dir_contents( THUMB_DIR ) as $filename ) {
+ if( $images[ $filename ] != 1 && !preg_match('/dmca_/', $filename)) {
+ print "Deleted $filename
";
+ //if (file_exists(THUMB_DIR . "$filename")) {
+ unlink(THUMB_DIR . "$filename") or print "Couldn't delete!
";
+ //}
+ }
+ }
+
+ print "Cleaning res dir...
";
+ foreach( dir_contents( RES_DIR ) as $filename ) {
+ if( $respages[ $filename ] != 1 ) {
+ print "Deleted $filename
";
+ unlink( RES_DIR . "$filename" ) or print "Couldn't delete!
";
+ }
+ }
+
+ print "Cleaning index pages...
";
+ $result = mysql_board_call( "SELECT COUNT(*) from `" . SQLLOG . "` WHERE archived = 0 AND resto = 0" );
+ $lastpage = PAGE_MAX + 1;//(mysql_result( $result, 0, 0 ) / DEF_PAGES) + 1;
+ if( USE_GZIP == 1 ) {
+ $indexpages[ SELF_PATH2_FILE . '.gz' ] = 1;
+
+ if (USE_RSS) {
+ $indexpages[INDEX_DIR . 'index.rss.gz'] = 1;
+ }
+ if (ENABLE_CATALOG) {
+ $indexpages[INDEX_DIR . 'catalog.html.gz'] = 1;
+ }
+ if (ENABLE_JSON_CATALOG) {
+ $indexpages[INDEX_DIR . 'catalog.json.gz'] = 1;
+ }
+ if (ENABLE_JSON_THREADS) {
+ $indexpages[INDEX_DIR . 'threads.json.gz'] = 1;
+ $indexpages[INDEX_DIR . 'archive.json.gz'] = 1;
+ }
+ if (ENABLE_ARCHIVE) {
+ $indexpages[INDEX_DIR . 'archive.html.gz'] = 1;
+ }
+ }
+
+ $indexpages[ SELF_PATH2_FILE ] = 1;
+
+ if (USE_RSS) {
+ $indexpages[INDEX_DIR . 'index.rss'] = 1;
+ }
+ if (ENABLE_CATALOG) {
+ $indexpages[INDEX_DIR . 'catalog.html'] = 1;
+ }
+ if (ENABLE_JSON_CATALOG) {
+ $indexpages[INDEX_DIR . 'catalog.json'] = 1;
+ }
+ if (ENABLE_JSON_THREADS) {
+ $indexpages[INDEX_DIR . 'threads.json'] = 1;
+ $indexpages[INDEX_DIR . 'archive.json'] = 1;
+ }
+ if (ENABLE_ARCHIVE) {
+ $indexpages[INDEX_DIR . 'archive.html'] = 1;
+ }
+
+ for( $page = 1; $page < $lastpage; $page++ ) {
+ if( USE_GZIP == 1 ) {
+ $indexpages[ INDEX_DIR . $page . PHP_EXT . '.gz' ] = 1;
+ if (ENABLE_JSON_INDEXES) {
+ $indexpages[INDEX_DIR . $page . '.json.gz'] = 1;
+ }
+ }
+ $indexpages[ INDEX_DIR . $page . PHP_EXT ] = 1;
+ if (ENABLE_JSON_INDEXES) {
+ $indexpages[INDEX_DIR . $page . '.json'] = 1;
+ }
+ }
+
+ foreach( glob( INDEX_DIR . '*.{html,gz}', GLOB_BRACE ) as $filename ) {
+ $bfilename = basename( $filename );
+ if( $indexpages[ $filename ] != 1 ) {
+ print "Deleted $bfilename
";
+ unlink( $filename ) or print "Couldn't delete!
";
+ }
+ }
+
+ print "Cleaning tmp uploads...
";
+ $phptmp = ini_get( "upload_tmp_dir" );
+ exec( "find $phptmp/ -mtime +2h -name php*", $tmpfiles );
+ exec( "find -E " . INDEX_DIR . " -regex '.*/(gz)?tmp.*$' -mtime +2h", $indextmp );
+ exec( "find -E " . RES_DIR . " -regex '.*/(gz)?tmp.*$' -mtime +2h", $restmp );
+
+ $tmpfiles = array_merge( $tmpfiles, $indextmp );
+ $tmpfiles = array_merge( $tmpfiles, $restmp );
+
+ foreach( $tmpfiles as $filename ) {
+ $safename = explode( '/' . BOARD_DIR . '/', $filename );
+ $safename = end( $safename );
+
+ print "Deleted $safename
";
+ unlink( $filename ) or print "Couldn't delete!
";
+ }
+ /*print "Cleaning /var/tmp
";
+ exec("find /var/tmp/ -mtime +2h -type f", $tmpfiles);
+ foreach($tmpfiles as $filename) {
+ print "Delete $filename
"; unlink($filename) or print "Couldn't delete!
";
+ }*/
+ print "Cleaning up side tables...
";
+
+ mysql_global_call( "DELETE FROM user_actions WHERE time < DATE_SUB(NOW(), INTERVAL 7 DAY)" );
+ mysql_global_call( "DELETE FROM event_log WHERE created_on < DATE_SUB(NOW(), INTERVAL 7 DAY)" );
+ mysql_global_call( "DELETE FROM xff WHERE tim < (unix_timestamp(DATE_SUB(NOW(), INTERVAL 7 DAY))*1000)" );
+ mysql_board_call( "DELETE FROM f_md5 WHERE now < DATE_SUB(NOW(), INTERVAL 2 DAY)" );
+ mysql_board_call("DELETE FROM r9k_posts WHERE created_on < DATE_SUB(NOW(), INTERVAL 2 YEAR)");
+
+ print "Cleanup complete!";
+}
+
+// Changes relative board urls to absolute //sys.4chan.org admin urls
+function fix_board_nav($nav) {
+ return preg_replace('/href="\/([a-z0-9]+)\/"/', "href=\"//sys." . L::d(BOARD_DIR) . "/$1/admin\"", $nav);
+}
+
+/* head */
+function head( &$dat, $is_logged_in = false )
+{
+ global $admin, $access_allow, $access_deny;
+
+ $allowed_modes = array('ban', 'delall', 'unban', 'opt', 'banreq', 'editop');
+
+ if( !is_user() || ( is_user() && ( $admin != "ban" ) && ( $admin != "delall" ) && ( $admin != "unban" ) && ( $admin != "opt" ) && ( $admin != 'banreq' ) && ( $admin != 'editop' ) ) ) {
+ $navinc = fix_board_nav(file_get_contents( NAV_TXT )) . '
';
+ $navinc = str_replace( '[Settings] ', '', $navinc );
+ }
+
+ if (DEFAULT_BURICHAN) {
+ $style_cookie = 'ws_style';
+ $ws = 'ws';
+ }
+ else {
+ $style_cookie = 'nws_style';
+ $ws = '';
+ }
+
+ $preferred_style = $_COOKIE[$style_cookie];
+
+ switch ($preferred_style) {
+ case 'Yotsuba New':
+ $style = 'yotsubanew';
+ break;
+ case 'Yotsuba B New':
+ $style = 'yotsubluenew';
+ break;
+ //case 'Futaba New':
+ // $style = 'futabanew';
+ // break;
+ //case 'Burichan New':
+ // $style = 'burichannew';
+ // break;
+ case 'Tomorrow':
+ $style = 'tomorrow';
+ break;
+ case 'Photon':
+ $style = 'photon';
+ break;
+ default:
+ $style = DEFAULT_BURICHAN ? 'yotsubluenew' : 'yotsubanew';
+ break;
+ }
+
+ if (!in_array($admin, $allowed_modes)) {
+ $admin = '';
+ }
+
+ if ($admin == 'ban') {
+ $page_title = 'Ban No.' . (int)$_GET['id'] . ' on /' . BOARD_DIR . '/';
+ $no_header = true;
+ }
+ else if ($admin == 'banreq') {
+ $page_title = 'Ban request No.' . (int)$_GET['id'] . ' on /' . BOARD_DIR . '/';
+ $no_header = true;
+ }
+ else {
+ $page_title = TITLE;
+ $no_header = isset($_GET['noheader']);
+ }
+
+ $fb_js = <<';
+
+ document.body.insertBefore(el, document.body.firstElementChild);
+ },
+
+ hideMessage: function() {
+ var el = document.getElementById('feedback');
+
+ if (el) {
+ document.body.removeChild(el);
+ }
+ },
+
+ checkTemplate: function(id) {
+ var tpl;
+
+ Feedback.hideMessage();
+
+ if (id < 0) {
+ return;
+ }
+
+ tpl = window.templates[id];
+
+ if (tpl.no == '1') {
+ Feedback.showMessage('Only use this ban template for images depicting apparent child pornography. For links and non-pornographic images, please use the appropriate template(s).');
+ }
+ else if (tpl.no == '123' || tpl.no == '126') {
+ Feedback.showMessage('Images depicting apparent child pornography should be banned using the "Child Pornography (Explicit Image)" template.');
+ }
+ }
+};
+JS;
+
+$tooltip_js = << document.documentElement.clientWidth) {
+ left = rect.left - el.offsetWidth + t.offsetWidth + 2;
+ el.className += '-left';
+ }
+
+ top = rect.top - el.offsetHeight - 5;
+
+ style = el.style;
+ style.display = 'none';
+ style.top = (top + window.pageYOffset) + 'px';
+ style.left = left + window.pageXOffset + 'px';
+ style.display = '';
+
+ Tip.node = el;
+ },
+
+ hide: function() {
+ if (Tip.node) {
+ document.body.removeChild(Tip.node);
+ Tip.node = null;
+ }
+ }
+}
+
+Tip.init();
+JS;
+
+ $dat .= '
+
+
+
+
+
+
+
+
+' . $page_title . '
+
+
+';
+
+ if (!$no_header) {
+ $dat .= '
+' . str_replace( "12pt", "10pt", $navinc ) . '
+
+
';
+ }
+}
+
+/* Footer */
+function foot( &$dat )
+{
+ $dat .= '
+
+' . S_FOOT . '
+
+wtf?
+' . str_replace( "12pt", "10pt", $navinc2 ) . '
+';
+}
+
+function error( $mes, $dest = '' )
+{
+ global $upfile_name;
+ if ($dest && file_exists($dest)) {
+ unlink($dest);
+ }
+ head( $dat );
+ echo $dat;
+ echo "
+ $mes
[" . S_RELOAD . "]";
+ die( "