├── .gitignore ├── api └── boards.json ├── css ├── bans.css ├── burichannew.css ├── error.css ├── futubanew.css ├── global.css ├── janichan.css ├── md2016.css ├── photon.css ├── spooky.css ├── spooky2017.css ├── tomorrow.css ├── yotsubanew.css ├── yotsubluemobile.css ├── yotsubluenew.css └── yui.css ├── error ├── html ├── form_thread.html ├── global_message.html └── post.html ├── javascripts ├── bans.js ├── catalog.js ├── core.js ├── extension.js └── frontpage.js ├── package-lock.json ├── package.json ├── pages ├── 404.html ├── 4channel_pass.html ├── advertise.html ├── blotter.html ├── contact.html ├── faq.html ├── feedback.html ├── flash.html ├── home.html ├── legal.html ├── news.html ├── pass.html ├── press.html ├── robots.txt ├── rules.html ├── security.html └── sitemap.xml ├── state.json ├── track.js └── track.sh /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | cookies.json 3 | track*.log 4 | -------------------------------------------------------------------------------- /css/bans.css: -------------------------------------------------------------------------------- 1 | /* YUI 3.9.1 (build 5852) Copyright 2013 Yahoo! Inc. http://yuilibrary.com/license/ */ 2 | 3 | body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td { 4 | margin: 0; 5 | padding: 0; 6 | } 7 | 8 | table { 9 | border-collapse: collapse; 10 | border-spacing: 0; 11 | } 12 | 13 | fieldset, img { 14 | border: 0; 15 | } 16 | 17 | address, caption, cite, code, dfn, em, strong, th, var { 18 | font-style: normal; 19 | font-weight: normal; 20 | } 21 | 22 | ol, ul { 23 | list-style: none; 24 | } 25 | 26 | caption, th { 27 | text-align: left; 28 | } 29 | 30 | h1, h2, h3, h4, h5, h6 { 31 | font-size: 100%; 32 | font-weight: normal; 33 | } 34 | 35 | q:before, q:after { 36 | content: ''; 37 | } 38 | 39 | abbr, acronym { 40 | border: 0; 41 | font-variant: normal; 42 | } 43 | 44 | sup { 45 | vertical-align: text-top; 46 | } 47 | 48 | sub { 49 | vertical-align: text-bottom; 50 | } 51 | 52 | input, textarea, select { 53 | font-family: inherit; 54 | font-size: inherit; 55 | font-weight: inherit; 56 | } 57 | 58 | input, textarea, legend { 59 | color: #000; 60 | } 61 | 62 | body { 63 | background: url('//s.4cdn.org/image/fade.png') repeat-x scroll center top #ffffee; 64 | font-family: 'Helvetica Neue', arial, sans-serif; 65 | margin: 5px 0 5px 0; 66 | padding: 0 5px; 67 | font-size: 13px; 68 | color: #800000; 69 | } 70 | 71 | header { 72 | text-align: center; 73 | } 74 | 75 | a { 76 | color: #0000ee; 77 | } 78 | 79 | #title { 80 | margin-top: 20px; 81 | font-size: 28px; 82 | font-weight: bold; 83 | letter-spacing: -2px; 84 | } 85 | 86 | #description { 87 | margin-top: 20px; 88 | } 89 | 90 | #log-entries { 91 | border-top: 1px solid #606060; 92 | table-layout: fixed; 93 | background-color: #fff; 94 | cursor: default; 95 | margin: auto; 96 | border-left: 1px solid #606060; 97 | border-right: 1px solid #606060; 98 | margin-top: 30px; 99 | color: #000; 100 | } 101 | 102 | #log-entries th { 103 | border-left: 1px solid #606060; 104 | background-color: #ffccaa; 105 | font-weight: bold; 106 | padding: 2px; 107 | text-align: center; 108 | } 109 | 110 | #log-entries td { 111 | border-left: 1px solid #606060; 112 | padding: 5px; 113 | vertical-align: top; 114 | text-align: center; 115 | } 116 | 117 | #log-entries tr { 118 | border-bottom: 1px solid #606060; 119 | } 120 | 121 | .col-board { 122 | width: 50px; 123 | font-weight: bold; 124 | } 125 | 126 | .col-action { 127 | width: 60px; 128 | } 129 | 130 | .col-post { 131 | width: 100px; 132 | } 133 | 134 | .col-time { 135 | width: 210px; 136 | } 137 | 138 | .preview-link { 139 | color: #0000ee; 140 | text-decoration: underline; 141 | } 142 | 143 | .exif { 144 | display: none; 145 | } 146 | 147 | /* Post previews */ 148 | 149 | #quote-preview { 150 | display: block; 151 | position: absolute; 152 | padding: 3px 6px 6px 3px; 153 | margin: 0; 154 | text-align: left; 155 | border-width: 1px 2px 2px 1px; 156 | border-style: solid; 157 | } 158 | 159 | #quote-preview.nws { 160 | color: #800000; 161 | border-color: #d9bfb7; 162 | } 163 | 164 | #quote-preview.ws { 165 | color: #000; 166 | border-color: #b7c5d9; 167 | } 168 | 169 | #quote-preview.ws a { 170 | color: #34345c; 171 | } 172 | 173 | #quote-preview input { 174 | margin: 3px 3px 3px 4px; 175 | } 176 | 177 | .ws.reply { 178 | background-color: #d6daf0; 179 | } 180 | 181 | .nws.reply { 182 | background-color: #f0e0d6; 183 | } 184 | 185 | .subject { 186 | font-weight: bold; 187 | } 188 | 189 | .ws .subject { 190 | color: #0f0c5d; 191 | } 192 | 193 | .nws .subject { 194 | color: #cc1105; 195 | } 196 | 197 | .quote { 198 | color: #789922; 199 | } 200 | 201 | .quotelink, .deadlink { 202 | color: #789922 !important; 203 | } 204 | 205 | .ws .useremail .postertrip, .ws .useremail .name { 206 | color: #34345c !important; 207 | } 208 | 209 | .nws .useremail .postertrip, .nws .useremail .name { 210 | color: #0000ee !important; 211 | } 212 | 213 | .nameBlock { 214 | display: inline-block; 215 | } 216 | 217 | .name { 218 | color: #117743; 219 | font-weight: bold; 220 | } 221 | 222 | .postertrip { 223 | color: #117743; 224 | font-weight: normal !important; 225 | } 226 | 227 | .postNum a { 228 | text-decoration: none; 229 | } 230 | 231 | .ws .postNum a { 232 | color: #000 !important; 233 | } 234 | 235 | .nws .postNum a { 236 | color: #800000 !important; 237 | } 238 | 239 | .fileInfo { 240 | margin-left: 20px; 241 | } 242 | 243 | .fileThumb { 244 | float: left; 245 | margin: 3px 20px 5px; 246 | } 247 | 248 | .fileThumb img { 249 | border: none; 250 | float: left; 251 | } 252 | 253 | s { 254 | background-color: #000000 !important; 255 | } 256 | 257 | .capcode { 258 | font-weight: bold !important; 259 | } 260 | 261 | .nameBlock.capcodeAdmin span.name, span.capcodeAdmin span.name a, span.capcodeAdmin span.postertrip, span.capcodeAdmin strong.capcode { 262 | color: #ff0000 !important; 263 | } 264 | 265 | .nameBlock.capcodeMod span.name, span.capcodeMod span.name a, span.capcodeMod span.postertrip, span.capcodeMod strong.capcode { 266 | color: #800080 !important; 267 | } 268 | 269 | .nameBlock.capcodeDeveloper span.name, span.capcodeDeveloper span.name a, span.capcodeDeveloper span.postertrip, span.capcodeDeveloper strong.capcode { 270 | color: #0000f0 !important; 271 | } 272 | 273 | .identityIcon { 274 | height: 16px; 275 | margin-bottom: -3px; 276 | width: 16px; 277 | } 278 | 279 | .postMessage { 280 | margin: 13px 40px 13px 40px; 281 | } 282 | 283 | .countryFlag { 284 | margin-bottom: -1px; 285 | padding-top: 1px; 286 | } 287 | 288 | .fileDeletedRes { 289 | height: 13px; 290 | width: 127px; 291 | } 292 | 293 | span.fileThumb, span.fileThumb img { 294 | float: none !important; 295 | margin-bottom: 0 !important; 296 | margin-top: 0 !important; 297 | } 298 | 299 | /* footer */ 300 | 301 | footer { 302 | width: 750px; 303 | border-top: 1px solid; 304 | margin: 25px auto 0; 305 | text-align: center; 306 | } 307 | 308 | footer ul { 309 | display: inline-block; 310 | } 311 | 312 | footer li:first-child { 313 | border-left: 1px solid; 314 | } 315 | 316 | footer li { 317 | display: block; 318 | float: left; 319 | border: 1px solid; 320 | border-top: none; 321 | border-left: none; 322 | padding-left: 1em; 323 | padding-right: 1em; 324 | padding-bottom: 2px; 325 | padding-top: 2px; 326 | background-color: #ffeedd; 327 | line-height: 1.1em; 328 | } 329 | 330 | footer li a { 331 | color: #880000; 332 | text-decoration: none; 333 | font-size: 12px; 334 | } 335 | 336 | footer li a:hover { 337 | color: #cc6633; 338 | } 339 | 340 | .current-page { 341 | background-color: #ffffee; 342 | border-top: 1px solid #ffffee; 343 | padding-bottom: 3px; 344 | position: relative; 345 | top: -1px; 346 | } 347 | 348 | #copyright { 349 | text-align: center; 350 | margin-top: 25px; 351 | margin-bottom: 1em; 352 | font-size: 11px; 353 | } -------------------------------------------------------------------------------- /css/error.css: -------------------------------------------------------------------------------- 1 | ul, ol, dl { 2 | margin: 0; 3 | } 4 | 5 | ol li { 6 | list-style: decimaloutside; 7 | } 8 | 9 | em { 10 | font-style: italic; 11 | } 12 | 13 | strong { 14 | font-weight: bold; 15 | } 16 | 17 | .boxcontent h3 { 18 | font-size: 116%; 19 | } 20 | 21 | .boxcontent h4 { 22 | font-weight: bold; 23 | } 24 | 25 | .boxcontent { 26 | color: black; 27 | line-height: 1.5em; 28 | } 29 | 30 | ul { 31 | margin-left: 0; 32 | } 33 | 34 | ol { 35 | margin-left: 0; 36 | } 37 | 38 | .boxcontent p { 39 | margin: .5em 0; 40 | } 41 | 42 | hr { 43 | border: 0; 44 | color: #800; 45 | background: #800; 46 | height: 1px; 47 | margin-top: 0; 48 | margin-bottom: 1.0em; 49 | } 50 | 51 | span.trip { 52 | color: #117743; 53 | } 54 | 55 | .postblock { 56 | background: #ffe; 57 | border: 1px solid #fca; 58 | color: #800; 59 | font-size: 116%; 60 | height: 2em; 61 | line-height: 2em; 62 | padding-left: .5em; 63 | padding-right: .5em; 64 | } 65 | 66 | ul li { 67 | list-style-type: none; 68 | } 69 | 70 | h2 { 71 | text-align: center; 72 | } 73 | 74 | #error-blurb { 75 | text-align: center; 76 | padding: 0 .5em; 77 | } 78 | 79 | .boxcontent img { 80 | display: block; 81 | margin: auto; 82 | } -------------------------------------------------------------------------------- /css/global.css: -------------------------------------------------------------------------------- 1 | #boards .column { 2 | float: left; 3 | width: 12em; 4 | } 5 | 6 | #logo-fp { 7 | font-size: 1px; 8 | line-height: 0; 9 | overflow: hidden; 10 | margin: 0 auto; 11 | } 12 | 13 | #logo-fp img { 14 | margin: auto; 15 | display: block; 16 | border: none; 17 | } 18 | 19 | @media all and (max-device-width: 640px) { 20 | .center iframe, #logo-fp img { 21 | height: auto; 22 | max-width: 100%; 23 | } 24 | 25 | 26 | } 27 | 28 | #logo { 29 | background: url('/image/fp/logo.png') left top no-repeat; 30 | font-size: 1px; 31 | line-height: 0; 32 | height: 120px; 33 | overflow: hidden; 34 | margin: 0 auto; 35 | width: 300px; 36 | } 37 | 38 | #logo h1 { 39 | margin-left: -200px; 40 | width: 100%; 41 | height: 100%; 42 | display: block; 43 | } 44 | 45 | #logo h1 a { 46 | width: 100%; 47 | height: 100%; 48 | display: block; 49 | padding-right: 150px; 50 | } 51 | 52 | #logo h2 { 53 | margin-left: -200px; 54 | } 55 | 56 | #whatis { 57 | margin-top: 1.75em; 58 | text-align: center; 59 | } 60 | 61 | #hd { 62 | margin-bottom: 0; 63 | } 64 | 65 | br.clear-bug { 66 | height: 0; 67 | line-height: 0; 68 | clear: both; 69 | } 70 | 71 | .box-outer { 72 | border: 1px solid; 73 | zoom: 100%; 74 | margin-bottom: .5em; 75 | padding-bottom: .5em; 76 | } 77 | 78 | .boxbar { 79 | padding-left: .5em; 80 | line-height: 2em; 81 | } 82 | 83 | .boxcontent { 84 | padding: .5em; 85 | padding-top: .25em; 86 | padding-bottom: 0; 87 | line-height: 130%; 88 | } 89 | 90 | #disclaimer-dialog { 91 | border: 1px solid; 92 | text-align: left; 93 | } 94 | 95 | #disclaimer-dialog .hd { 96 | border: none; 97 | padding: 0; 98 | padding-left: .5em; 99 | line-height: 2em; 100 | } 101 | 102 | #disclaimer-dialog li { 103 | display: list-item; 104 | list-style: decimalinside; 105 | } 106 | 107 | #disclaimer-dialog .container-close, .closebutton { 108 | width: 16px; 109 | height: 16px; 110 | } 111 | 112 | #recent-images .boxcontent { 113 | text-align: center; 114 | } 115 | 116 | #recent-images li { 117 | margin: auto; 118 | margin-bottom: .5em; 119 | display: block; 120 | width: 250px; 121 | padding: 1px; 122 | } 123 | 124 | #recent-images a { 125 | display: block; 126 | } 127 | 128 | #recent-images img { 129 | display: block; 130 | margin: auto; 131 | max-width: 250px; 132 | } 133 | 134 | #ft ul { 135 | margin: 0; 136 | width: 750px; 137 | } 138 | 139 | #ft li { 140 | display: block; 141 | float: left; 142 | border: 1px solid; 143 | padding-left: 1em; 144 | padding-right: 1em; 145 | padding-bottom: 2px; 146 | border-left: none; 147 | margin-top: -1px; 148 | padding-top: 2px; 149 | } 150 | 151 | #ft li.first { 152 | border-left: 1px solid; 153 | } 154 | 155 | #ft li.current { 156 | padding-bottom: 4px; 157 | border-top: none; 158 | } 159 | 160 | #ft li.fill { 161 | border: 0; 162 | padding-bottom: 4px; 163 | border-top: 1px solid; 164 | width: 68px; 165 | } 166 | 167 | #ft { 168 | text-align: center; 169 | } 170 | 171 | #ft ul { 172 | display: inline-block; 173 | } 174 | 175 | #ft ul { 176 | display: inline; 177 | } 178 | 179 | #ft ul { 180 | display: table; 181 | margin: auto; 182 | } 183 | 184 | #copyright { 185 | text-align: center; 186 | margin-top: 1em; 187 | margin-bottom: 1em; 188 | } 189 | 190 | .boxbar { 191 | position: relative; 192 | zoom: 100%; 193 | } 194 | 195 | .menubutton, .closebutton { 196 | position: absolute; 197 | top: 0; 198 | right: 0; 199 | margin-right: .25em; 200 | } 201 | 202 | .closebutton { 203 | margin-top: 3px; 204 | margin-right: 4px; 205 | } 206 | 207 | .menubutton a { 208 | padding: 2px; 209 | padding-right: 18px; 210 | } 211 | 212 | .menubutton { 213 | background: right center no-repeat; 214 | } 215 | 216 | #preview-tooltip-ws, #preview-tooltip-nws { 217 | text-align: left; 218 | } 219 | 220 | #preview-tooltip-ws .post, #preview-tooltip-nws .post { 221 | max-width: 500px; 222 | *width: 500px; 223 | } 224 | 225 | #preview-tooltip-nws .post .p_filetitle { 226 | font-weight: bold; 227 | color: #cc1105; 228 | } 229 | 230 | #preview-tooltip-ws .post .p_filetitle { 231 | font-weight: bold; 232 | color: #0f0c5d; 233 | } 234 | 235 | #preview-tooltip-ws .post .p_postername, #preview-tooltip-nws .post .p_postername { 236 | font-weight: bold; 237 | color: #117743; 238 | } 239 | 240 | #preview-tooltip-ws .post .postertrip, #preview-tooltip-nws .post .postertrip { 241 | color: #228854; 242 | } 243 | 244 | #preview-tooltip-ws blockquote, #preview-tooltip-nws blockquote { 245 | margin-top: 10px; 246 | } 247 | 248 | #preview-tooltip-nws blockquote a { 249 | color: #000080; 250 | } 251 | 252 | #preview-tooltip-ws blockquote a { 253 | color: #d00; 254 | } 255 | 256 | #preview-tooltip-ws .unkfunc, #preview-tooltip-nws .unkfunc { 257 | color: #789922; 258 | } 259 | 260 | #preview-tooltip-nws h2 { 261 | max-width: 500px; 262 | *width: 500px; 263 | background: #fca; 264 | color: #800; 265 | padding-left: .5em; 266 | height: 1.5em; 267 | line-height: 1.5em; 268 | font-size: 108%; 269 | } 270 | 271 | #preview-tooltip-ws h2 { 272 | max-width: 500px; 273 | *width: 500px; 274 | background: #59a; 275 | color: #fff; 276 | padding-left: .5em; 277 | height: 1.5em; 278 | line-height: 1.5em; 279 | font-size: 108%; 280 | } 281 | 282 | #preview-tooltip-nws .post, #preview-tooltip-ws .post { 283 | padding: 3px; 284 | } 285 | 286 | #preview-tooltip-nws { 287 | background: #ffe; 288 | border-color: #800; 289 | padding: 0; 290 | } 291 | 292 | #preview-tooltip-ws { 293 | background: #eff; 294 | border-color: #006; 295 | padding: 0; 296 | } 297 | 298 | .boxcontent, #ft, #whatis { 299 | font-size: 93%; 300 | } 301 | 302 | .code { 303 | font-family: consolas, monospace; 304 | } 305 | 306 | h1 { 307 | font-family: Tahoma, Bitstream Vera Sans; 308 | font-size: 197%; 309 | font-weight: bold; 310 | } 311 | 312 | h2 { 313 | font-size: 131%; 314 | font-weight: bold; 315 | } 316 | 317 | h3 { 318 | font-size: 100%; 319 | font-weight: bold; 320 | } 321 | 322 | #copyright { 323 | font-size: 11px; 324 | } 325 | 326 | .menubutton li { 327 | font-size: inherit; 328 | } 329 | 330 | #announce .boxcontent { 331 | line-height: 1.5em; 332 | } 333 | 334 | #announce em { 335 | font-style: italic; 336 | } 337 | 338 | #announce strong { 339 | font-weight: bold; 340 | } 341 | 342 | h1 a { 343 | color: #800; 344 | text-decoration: none; 345 | } 346 | 347 | html { 348 | background: #ffe; 349 | } 350 | 351 | body { 352 | background: #ffe url('/image/fp/fade.png') top repeat-x; 353 | color: #800; 354 | } 355 | 356 | .boxbar { 357 | background: #fca; 358 | color: #800; 359 | } 360 | 361 | #announce .boxbar { 362 | background: #800; 363 | color: #fff; 364 | } 365 | 366 | #announce { 367 | background: #fff; 368 | color: #000; 369 | } 370 | 371 | #disclaimer-dialog .container-close, .closebutton { 372 | background: #800 url('/image/fp/icon-close-red.png'); 373 | } 374 | 375 | .top-box { 376 | background: #fff; 377 | } 378 | 379 | .top-box .menubutton { 380 | background-image: url('/image/fp/icon-down-peach.png'); 381 | } 382 | 383 | #boards a { 384 | color: #800; 385 | text-decoration: none; 386 | } 387 | 388 | #boards a:hover { 389 | color: #e00; 390 | text-decoration: underline; 391 | } 392 | 393 | .left-box { 394 | background: #efe; 395 | color: #060; 396 | } 397 | 398 | .left-box .boxbar { 399 | background: #9c6; 400 | color: #060; 401 | } 402 | 403 | #recent-images li { 404 | background: #120; 405 | } 406 | 407 | .right-box { 408 | background: #eff; 409 | color: #006; 410 | } 411 | 412 | .right-box .boxbar { 413 | background: #59a; 414 | color: #fff; 415 | } 416 | 417 | .right-box .menubutton { 418 | background-image: url('/image/fp/icon-down-teal.png'); 419 | } 420 | 421 | .right-box .list-alpha { 422 | margin-top: 0; 423 | margin-bottom: 0; 424 | } 425 | 426 | .right-box .list-alpha li { 427 | list-style-type: lower-alpha; 428 | } 429 | 430 | #ft ul { 431 | border-top: 1px solid; 432 | } 433 | 434 | #ft li { 435 | background: #fed; 436 | } 437 | 438 | #ft li a { 439 | color: #800; 440 | text-decoration: none; 441 | } 442 | 443 | #ft li a:hover { 444 | color: #c63; 445 | } 446 | 447 | #ft li.current, #ft li.fill { 448 | background: #ffe; 449 | color: #800; 450 | } 451 | 452 | #filter-container .yuimenuitem-selected { 453 | background-color: #fca; 454 | } 455 | 456 | #filter-container a:link, #filter-container a:visited, #filter-container a:hover { 457 | color: #800; 458 | text-decoration: none; 459 | } 460 | 461 | #filter-container a:hover { 462 | color: #c63; 463 | } 464 | 465 | #options-container .yuimenuitem-selected { 466 | background-color: #eff; 467 | } 468 | 469 | #options-container a:link, #options-container a:visited, #options-container a:hover { 470 | color: #800; 471 | text-decoration: none; 472 | } 473 | 474 | #options-container a:hover { 475 | color: #c63; 476 | } 477 | 478 | #disclaimer-dialog .hd { 479 | background: #800; 480 | color: #fff; 481 | } 482 | 483 | .warning { 484 | color: #e00; 485 | } 486 | 487 | a:visited { 488 | color: blue; 489 | } 490 | 491 | strong { 492 | font-weight: bold; 493 | } 494 | 495 | .center { 496 | text-align: center; 497 | } 498 | 499 | #c-threads { 500 | text-align: center; 501 | } 502 | 503 | .c-thread { 504 | vertical-align: top; 505 | display: inline-block; 506 | word-wrap: break-word; 507 | overflow: hidden; 508 | margin-top: 5px; 509 | padding: 5px 0 3px 0; 510 | position: relative; 511 | width: 175px; 512 | max-height: 320px; 513 | margin-bottom: 10px; 514 | } 515 | 516 | .c-board { 517 | font-weight: bold; 518 | overflow: hidden; 519 | text-overflow: ellipsis; 520 | display: block; 521 | white-space: nowrap; 522 | margin-bottom: 5px; 523 | } 524 | 525 | .c-thread img { 526 | border: 1px solid #800; 527 | display: inline; 528 | } 529 | 530 | .c-teaser { 531 | margin-bottom: 5px; 532 | padding: 0 2px; 533 | white-space: pre-line; 534 | } 535 | 536 | #site-stats .boxcontent { 537 | margin-top: 5px; 538 | text-align: center; 539 | } 540 | 541 | .stat-cell { 542 | display: inline-block; 543 | width: 33%; 544 | } 545 | 546 | #mobile-ad-top { 547 | display: none; 548 | } 549 | 550 | @media all and (max-device-width: 480px) { 551 | #mobile-ad-top { 552 | height: 50px; 553 | width: 320px; 554 | margin: 10px auto; 555 | display: block; 556 | } 557 | 558 | 559 | } 560 | 561 | @media all and (max-device-width: 640px) { 562 | .yui-g .yui-u, .yui-g .yui-u.first { 563 | float: none; 564 | width: auto; 565 | } 566 | 567 | #doc { 568 | min-width: 0; 569 | width: auto; 570 | padding: 10px; 571 | } 572 | 573 | #ft li.current, #ft li.fill { 574 | background: inherit; 575 | color: #800; 576 | } 577 | 578 | #ft ul { 579 | width: auto; 580 | border-top: none; 581 | line-height: 2; 582 | display: block; 583 | } 584 | 585 | #ft li { 586 | background: inherit; 587 | display: inline; 588 | float: none; 589 | border: none; 590 | white-space: nowrap; 591 | } 592 | 593 | #ft li.first { 594 | border-left: none; 595 | } 596 | 597 | #ft li.current { 598 | padding-bottom: 4px; 599 | border-top: none; 600 | } 601 | 602 | #ft li.fill { 603 | display: none; 604 | } 605 | 606 | #ft li a { 607 | color: blue; 608 | text-decoration: underline; 609 | } 610 | 611 | .boardlink { 612 | display: inline-block; 613 | font-size: 1.2em; 614 | padding: 5px 10px 5px 0; 615 | } 616 | 617 | #boards .column { 618 | margin-bottom: 25px; 619 | } 620 | 621 | #boards .column:nth-child(2n) { 622 | float: right; 623 | } 624 | 625 | 626 | } -------------------------------------------------------------------------------- /css/janichan.css: -------------------------------------------------------------------------------- 1 | /*body { 2 | font-family: arial, helvetica, sans-serif; 3 | font-size: 10pt; 4 | background: #FFF2EE url(/image/fade-pink.png) top center repeat-x; 5 | color: #000; 6 | padding-left: 5px; 7 | padding-right: 5px; 8 | margin-right: 0; 9 | margin-left: 0; 10 | margin-top: 5px; 11 | } 12 | 13 | td { 14 | font-size: 10pt; 15 | padding: 0; 16 | margin: 0; 17 | } 18 | 19 | td.reply { 20 | border: 1px solid #d9b9b7; 21 | border-left: none; 22 | border-top: none; 23 | padding: 2px; 24 | } 25 | 26 | blockquote { 27 | font-size: 10pt; 28 | } 29 | 30 | .doubledash { 31 | color: #000; 32 | } 33 | 34 | .inputtext { 35 | margin: 0; 36 | margin-right: 2px; 37 | padding: 1px 4px; 38 | border: 1px solid #aaa; 39 | outline: none; 40 | font-family: arial, helvetica, sans-serif; 41 | font-size: 10pt; 42 | } 43 | 44 | input.inputtext { 45 | height: 1.75em; 46 | } 47 | 48 | td>.inputtext { 49 | height: auto; 50 | padding-top: 2px; 51 | padding-bottom: 3px; 52 | } 53 | 54 | .inputtext:focus { 55 | border: 1px solid #E89; 56 | } 57 | 58 | .logo img { 59 | border: 1px solid #000; 60 | } 61 | 62 | .logo b span { 63 | font-family: tahoma; 64 | } 65 | 66 | .logo span { 67 | font-size: 28px; 68 | letter-spacing: -2px; 69 | } 70 | 71 | hr { 72 | border: none; 73 | border-top: 1px solid #d9b9b7; 74 | height: 0; 75 | } 76 | 77 | .postblock { 78 | border: 1px solid #000; 79 | font-size: 10pt; 80 | padding: 0 5px; 81 | line-height: 20px; 82 | } 83 | 84 | .rules { 85 | font-size: 10pt; 86 | } 87 | 88 | .rules a { 89 | text-decoration: none; 90 | } 91 | 92 | form a img { 93 | margin-top: 3px; 94 | } 95 | 96 | iframe,.rotating { 97 | background: #F0DAD6; 98 | border-right: 1px solid #d9b9b7; 99 | border-bottom: 1px solid #d9b9b7; 100 | } 101 | 102 | .pages { 103 | border: none; 104 | background: #F0DAD6; 105 | border-right: 1px solid #d9b9b7; 106 | border-bottom: 1px solid #d9b9b7; 107 | } 108 | 109 | .pages td { 110 | border: none; 111 | padding: 1px 5px; 112 | } 113 | 114 | .pages td { 115 | color: #d9b9b7; 116 | } 117 | 118 | .pages td b { 119 | color: #000; 120 | } 121 | 122 | .deletebuttons { 123 | text-align: right; 124 | } 125 | 126 | .deletebuttons br { 127 | display: none; 128 | } 129 | 130 | a,a:visited { 131 | color: #5C3434; 132 | } 133 | 134 | a:hover { 135 | color: #00D; 136 | } 137 | 138 | a.quotelink { 139 | color: #229978; 140 | } 141 | 142 | .logo { 143 | clear: both; 144 | text-align: center; 145 | font-size: 24pt; 146 | color: #0F0AAF; 147 | width: 100%; 148 | } 149 | 150 | form { 151 | margin-top: 0; 152 | } 153 | 154 | .rules { 155 | width: 468px; 156 | font-size: 10px; 157 | } 158 | 159 | .rules>li { 160 | list-style: none; 161 | } 162 | 163 | .rules>li:before { 164 | content: "\2022 \20"; 165 | } 166 | 167 | .postblock { 168 | background: #E89; 169 | color: #000; 170 | font-weight: 800; 171 | } 172 | 173 | .footer { 174 | text-align: center; 175 | font-size: 12px; 176 | } 177 | 178 | .unkfunc { 179 | color: #229978; 180 | } 181 | 182 | .filesize { 183 | text-decoration: none; 184 | } 185 | 186 | td .filesize { 187 | display: inline; 188 | background: none; 189 | } 190 | 191 | .filesize span,span.postername,span.filetitle,span.commentpostername { 192 | unicode-bidi: embed; 193 | } 194 | 195 | .filetitle,.replytitle { 196 | background: inherit; 197 | color: #5D0C0F; 198 | font-weight: 800; 199 | } 200 | 201 | .postername,.commentpostername { 202 | background: inherit; 203 | color: #437711; 204 | font-weight: 800; 205 | } 206 | 207 | .postertrip { 208 | background: inherit; 209 | color: #548822; 210 | } 211 | 212 | .oldpost { 213 | background: inherit; 214 | color: #5D0C0F; 215 | font-weight: 800; 216 | } 217 | 218 | .omittedposts,.abbr { 219 | color: #070707; 220 | } 221 | 222 | .reply { 223 | background: #F0DAD6; 224 | color: #000; 225 | } 226 | 227 | .replyhl { 228 | background: #D0BAD6; 229 | color: #000; 230 | } 231 | 232 | .doubledash { 233 | vertical-align: top; 234 | clear: both; 235 | float: left; 236 | } 237 | 238 | a.quotejs:active,a.quotejs:link,a.quotejs:visited { 239 | color: #000; 240 | text-decoration: none; 241 | } 242 | 243 | a.quotejs:hover { 244 | color: #d00; 245 | } 246 | 247 | .tn_thread { 248 | width: 200px; 249 | height: 100px; 250 | margin: 0 20px 20px 20px; 251 | float: left; 252 | background: #fff2ee; 253 | border: #98e 1px solid; 254 | text-align: center; 255 | } 256 | 257 | .tn_reply { 258 | width: 100px; 259 | height: 100px; 260 | margin: 0 20px 20px 20px; 261 | float: left; 262 | background: #fff2ee; 263 | border: #98e 1px solid; 264 | text-align: center; 265 | } 266 | 267 | .adHeadline { 268 | font: bold 10pt serif; 269 | text-decoration: underline; 270 | color: #00e; 271 | } 272 | 273 | .adText { 274 | font: normal 10pt serif; 275 | text-decoration: none; 276 | color: #800; 277 | } 278 | 279 | #ad { 280 | width: 120px; 281 | margin: 0; 282 | padding: 0; 283 | position: absolute; 284 | right: 150px; 285 | border: 1px solid #98E; 286 | font-family: arial, helvetica, sans-serif; 287 | font-size: 11px; 288 | } 289 | 290 | #ad div { 291 | margin: 0; 292 | padding: .4em; 293 | } 294 | 295 | #ad div.ad-title { 296 | padding: 0; 297 | background: #98E; 298 | color: #000; 299 | font-size: 11px; 300 | } 301 | 302 | #ad div.ad-title a { 303 | font-family: arial, helvetica, sans-serif; 304 | color: #000; 305 | } 306 | 307 | #ad div.ad-text a { 308 | font-family: arial, helvetica, sans-serif; 309 | } 310 | 311 | .bottomAdTitle { 312 | font-family: arial, helvetica, sans-serif; 313 | background: #98E; 314 | color: #000; 315 | } 316 | 317 | #bottomAd { 318 | height: 52px; 319 | font-size: 11px; 320 | } 321 | 322 | #bottomAdOuter { 323 | width: 600px; 324 | border: 1px solid #98E; 325 | font-size: 11px; 326 | } 327 | 328 | .spoiler a.quotelink,.spoiler .unkfunc { 329 | color: inherit; 330 | } 331 | 332 | .exif { 333 | display: none; 334 | font-family: arial, helvetica, sans-serif; 335 | font-size: xx-small; 336 | } 337 | 338 | .exif td { 339 | font-family: arial, helvetica, sans-serif; 340 | font-size: xx-small; 341 | } 342 | 343 | .exif td b { 344 | font-weight: 800; 345 | text-decoration: underline; 346 | font-size: x-small; 347 | } 348 | 349 | #header { 350 | position: absolute; 351 | top: 2px; 352 | left: 5px; 353 | right: 5px; 354 | } 355 | 356 | * html #header { 357 | width: 100%; 358 | } 359 | 360 | #navtop,#navbot { 361 | left: 0; 362 | float: left; 363 | } 364 | 365 | #navtopright,#navbotright { 366 | right: 0; 367 | display: block; 368 | float: right; 369 | text-align: right; 370 | } 371 | 372 | #header,#navbot,#navbotright { 373 | font-size: 9pt; 374 | color: #d9b9b7; 375 | } 376 | 377 | #header a,#navbot a,#navbotr a,.pages td a { 378 | font-weight: normal; 379 | padding: 1px; 380 | text-decoration: none; 381 | color: #5C3434; 382 | } 383 | 384 | #header a:hover,#navbot a:hover,#navbotr a:hover,.pages td a:hover { 385 | color: #00D; 386 | } 387 | 388 | #footer { 389 | clear: both; 390 | padding-top: 10px; 391 | } 392 | 393 | #footer center font { 394 | font-size: 7pt; 395 | } 396 | 397 | .pages td a { 398 | color: #5C3434; 399 | } 400 | 401 | td.replyhl { 402 | border: 1px solid #D0BAD6; 403 | border-left: none; 404 | border-top: none; 405 | padding: 2px; 406 | } 407 | 408 | td.deletebuttons input.checkbox { 409 | margin: 1px 2px 1px 2px; 410 | } 411 | 412 | div.logo img { 413 | margin: 5px 0 5px 0; 414 | } 415 | 416 | .fstitle { 417 | float: left; 418 | width: 25px; 419 | }*/ 420 | 421 | /** GENERIC / ELEMENT STYLING **/ 422 | 423 | body { 424 | background: #fff2ee url(/image/fade-pink.png) center top repeat-x; 425 | color: #000; 426 | font-family: arial, helvetica, sans-serif; 427 | font-size: 10pt; 428 | margin-left: 0; 429 | margin-right: 0; 430 | margin-top: 5px; 431 | padding-left: 5px; 432 | padding-right: 5px; 433 | } 434 | 435 | .nwsb { 436 | display: none; 437 | } 438 | 439 | .party-hat { 440 | left: 0; 441 | margin-top: -80px; 442 | position: absolute; 443 | pointer-events: none; 444 | } 445 | 446 | .mobile, .mobileinline { 447 | display: none !important; 448 | } 449 | 450 | .bottomCtrl { 451 | float: right; 452 | margin-top: 2px; 453 | } 454 | 455 | #ctrl-top { 456 | display: none; 457 | } 458 | 459 | a, a:visited { 460 | color: #00e; 461 | } 462 | 463 | a:hover { 464 | color: red; 465 | } 466 | 467 | a.replylink, div#absbot a { 468 | color: #00e !important; 469 | text-decoration: underline !important; 470 | } 471 | 472 | div#absbot { 473 | color: #800000; 474 | clear: both; 475 | } 476 | 477 | div.board > hr { 478 | clear: both; 479 | } 480 | 481 | img { 482 | border: none; 483 | } 484 | 485 | hr { 486 | border: none; 487 | border-top: 1px solid #d9b9b7; 488 | height: 0; 489 | } 490 | 491 | hr.abovePostForm { 492 | width: 90%; 493 | } 494 | 495 | span.x-small { 496 | font-size: x-small; 497 | } 498 | 499 | /** MOBILE ONLY DISABLES **/ 500 | 501 | .mobile { 502 | display: none; 503 | } 504 | 505 | /** HEADER **/ 506 | 507 | ul.rules { 508 | margin: 0; 509 | padding: 0; 510 | margin-top: 1px; 511 | } 512 | 513 | ul.rules > li { 514 | list-style: none; 515 | font-size: 10px; 516 | } 517 | 518 | .rules > li:before { 519 | content: "\2022 \20"; 520 | } 521 | 522 | div.boardBanner { 523 | text-align: center; 524 | clear: both; 525 | } 526 | 527 | div.boardBanner > img { 528 | border: 1px solid #34345c; 529 | margin: 5px 0 5px 0; 530 | width: 300px; 531 | height: 100px; 532 | } 533 | 534 | div.boardBanner > div.boardTitle { 535 | font-family: Tahoma; 536 | font-size: 28px; 537 | font-weight: bold; 538 | letter-spacing: -2px; 539 | margin-top: 0; 540 | color: #0f0aaf; 541 | } 542 | 543 | div.boardBanner > div.boardSubtitle { 544 | font-size: x-small; 545 | } 546 | 547 | div#boardNavDesktop { 548 | font-size: 9pt; 549 | color: #b86; 550 | display: block; 551 | } 552 | 553 | div#boardNavDesktop a { 554 | font-weight: normal; 555 | padding: 1px; 556 | text-decoration: none; 557 | color: #800000; 558 | } 559 | 560 | /** General Containers **/ 561 | 562 | div.pContainer { 563 | } 564 | 565 | div.opContainer { 566 | display: inline; 567 | } 568 | 569 | div.sideArrows { 570 | color: #e0bfb7; 571 | float: left; 572 | margin-right: 2px; 573 | margin-top: 0; 574 | margin-left: 2px; 575 | } 576 | 577 | /** Thread Container **/ 578 | 579 | div.thread { 580 | margin: 0; 581 | clear: both; 582 | } 583 | 584 | /** Post Container **/ 585 | 586 | div.post { 587 | margin: 4px 0; 588 | overflow: hidden; 589 | } 590 | 591 | 592 | 593 | div.reply { 594 | background-color: #f0dad6; 595 | border: 1px solid #d9b9b7; 596 | border-left: none; 597 | border-top: none; 598 | display: table; 599 | padding: 2px; 600 | } 601 | 602 | div.reply input { 603 | float: none; 604 | } 605 | 606 | /** Post Information **/ 607 | 608 | div.post div.postInfo { 609 | display: block; 610 | width: 100%; 611 | } 612 | 613 | div.post div.postInfo span.postNum { 614 | } 615 | 616 | div.post div.postInfo span.postNum a { 617 | text-decoration: none; 618 | color: #000; 619 | } 620 | 621 | div.post div.postInfo span.postNum a:hover { 622 | color: d00 !important; 623 | } 624 | 625 | /* Name */ 626 | 627 | div.post div.postInfo span.nameBlock { 628 | display: inline-block; 629 | } 630 | 631 | div.post div.postInfo span.nameBlock span.name { 632 | color: #437711; 633 | font-weight: bold; 634 | } 635 | 636 | div.post div.postInfo span.nameBlock span.postertrip { 637 | color: #548822; 638 | font-weight: normal !important; 639 | } 640 | 641 | /* Date/Time */ 642 | 643 | div.post div.postInfo span.date { 644 | } 645 | 646 | div.post div.postInfo span.time { 647 | } 648 | 649 | /* Subject */ 650 | 651 | div.post div.postInfo span.subject { 652 | color: #5d0c0f; 653 | font-weight: bold; 654 | } 655 | 656 | /** Message **/ 657 | 658 | div.post blockquote.postMessage { 659 | display: block; 660 | } 661 | 662 | blockquote > span.quote { 663 | color: #85aba1; 664 | } 665 | 666 | a.quoteLink, a.quotelink, .deadlink { 667 | color: #229978 !important; 668 | } 669 | 670 | /** File Information **/ 671 | 672 | div.post div.file { 673 | display: block; 674 | } 675 | 676 | div.post div.file div.fileInfo { 677 | margin-right: 10px; 678 | } 679 | 680 | div.replyContainer div.post div.file div.fileInfo { 681 | margin-left: 20px; 682 | } 683 | 684 | div.post div.file .fileThumb { 685 | float: left; 686 | margin-left: 20px; 687 | margin-right: 20px; 688 | margin-top: 3px; 689 | } 690 | 691 | span.fileThumb { 692 | margin-left: 0 !important; 693 | margin-right: 5px !important; 694 | } 695 | 696 | div.reply span.fileThumb, div.reply span.fileThumb img { 697 | float: none !important; 698 | margin-top: 0 !important; 699 | margin-bottom: 0 !important; 700 | } 701 | 702 | div.post div.file .fileThumb img { 703 | border: none; 704 | float: left; 705 | margin-bottom: 5px; 706 | } 707 | 708 | /** Summary **/ 709 | 710 | span.summary { 711 | color: #707070; 712 | margin-top: 10px; 713 | } 714 | 715 | /** POST FORM **/ 716 | 717 | div.postingMode { 718 | background-color: #e04000; 719 | padding: 1px; 720 | text-align: center; 721 | color: #fff; 722 | font-weight: bold; 723 | font-size: larger; 724 | } 725 | 726 | div.navLinks { 727 | margin-bottom: 10px; 728 | } 729 | 730 | div.navLinksBot { 731 | margin-bottom: 0; 732 | } 733 | 734 | #verification table { 735 | border: none !important; 736 | margin: 0; 737 | } 738 | 739 | /** FOOTER **/ 740 | 741 | div.thread:last-child { 742 | padding-bottom: 21px; 743 | margin-bottom: 6px; 744 | } 745 | 746 | div.pagelist { 747 | font-size: 13px !important; 748 | margin: 0; 749 | padding: 3px 7px; 750 | float: left; 751 | border: none; 752 | background: #f0e0d6; 753 | border-right: 1px solid #d9b9b7; 754 | border-bottom: 1px solid #d9b9b7; 755 | list-style: none; 756 | overflow: hidden; 757 | color: #b86; 758 | } 759 | 760 | div.pagelist > div { 761 | float: left; 762 | } 763 | 764 | div.pagelist > div span { 765 | padding: 4px; 766 | display: inline-block; 767 | } 768 | 769 | div.pagelist div.pages { 770 | padding: 4px; 771 | } 772 | 773 | div.pagelist div.pages a { 774 | text-decoration: none !important; /* FINE MOOT GOSH JEEZ */ 775 | } 776 | 777 | div.pagelist form { 778 | display: inline; 779 | } 780 | 781 | div.pagelist strong { 782 | color: #800000; 783 | } 784 | 785 | div.deleteform { 786 | float: right; 787 | margin-top: 2px; 788 | } 789 | 790 | input[type=password] { 791 | width: 50px; 792 | text-align: center; 793 | } 794 | 795 | div.deleteform input[type=checkbox] { 796 | margin: 1px 2px 1px 2px; 797 | } 798 | 799 | div.stylechanger { 800 | float: right; 801 | font-size: 10pt; 802 | clear: both; 803 | } 804 | 805 | div.stylechanger select { 806 | display: inline; 807 | } 808 | 809 | div#boardNavDesktopFoot { 810 | font-size: 9pt; 811 | color: #b86; 812 | clear: both; 813 | padding-top: 10px; 814 | padding-bottom: 3px; 815 | } 816 | 817 | div#boardNavDesktopFoot a { 818 | font-weight: normal; 819 | padding: 1px; 820 | text-decoration: none; 821 | color: #800000; 822 | } 823 | 824 | div.homelink { 825 | float: right; 826 | } 827 | 828 | div#absbot { 829 | text-align: center; 830 | font-size: xx-small !important; 831 | padding-bottom: 4px; 832 | color: #800; 833 | } 834 | 835 | #recaptcha_response_field { 836 | padding: 0; 837 | } 838 | 839 | /** POST FORM **/ 840 | 841 | table { 842 | border-spacing: 1px; 843 | margin-left: auto; 844 | margin-right: auto; 845 | } 846 | 847 | #postForm { 848 | display: none; 849 | } 850 | 851 | #togglePostFormLink { 852 | font-size: 22px; 853 | font-weight: bold; 854 | text-align: center; 855 | } 856 | 857 | table.postForm > tbody > tr > td:first-child { 858 | background-color: #e89; 859 | color: #000; 860 | font-weight: bold; 861 | border: 1px solid #000; 862 | padding: 0 5px; 863 | font-size: 10pt; 864 | } 865 | 866 | tr.rules td { 867 | border: 0 !important; 868 | background-color: transparent !important; 869 | font-weight: normal !important; 870 | } 871 | 872 | td { 873 | margin: 0; 874 | padding: 0; 875 | font-size: 10pt; 876 | } 877 | 878 | table.postForm > tbody input[type=text], input[type=password], table.postForm > tbody textarea { 879 | margin: 0; 880 | margin-right: 2px; 881 | padding: 2px 4px 3px 4px; 882 | border: 1px solid #aaa; 883 | outline: none; 884 | font-family: arial, helvetica, sans-serif; 885 | font-size: 10pt; 886 | } 887 | 888 | table.postForm > tbody > tr > td > input[type=text] { 889 | width: 232px; 890 | } 891 | 892 | table.postForm > tbody > tr > td > input[name="subject"] { 893 | width: 300px; 894 | } 895 | 896 | .postblock { 897 | background-color: #e89; 898 | color: #800; 899 | font-weight: bold; 900 | border: 1px solid #800; 901 | padding: 0 5px; 902 | font-size: 10pt; 903 | } 904 | 905 | div.closed { 906 | font-size: x-large; 907 | text-align: center; 908 | color: red; 909 | font-weight: bold; 910 | padding-top: 100px; 911 | padding-bottom: 100px; 912 | } 913 | 914 | @media screen and (-webkit-min-device-pixel-ratio:0) { 915 | tbody textarea { 916 | margin-bottom: -3px !important; 917 | } 918 | 919 | 920 | } 921 | 922 | .commentpostername { 923 | font-weight: bold; 924 | } 925 | 926 | .identityIcon { 927 | margin-bottom: -3px; 928 | } 929 | 930 | .stickyIcon { 931 | margin-bottom: -1px; 932 | padding-left: 2px; 933 | height: 16px; 934 | width: 16px; 935 | } 936 | 937 | .closedIcon { 938 | margin-bottom: -1px; 939 | margin-left: -1px; 940 | height: 16px; 941 | width: 16px; 942 | } 943 | 944 | .trashIcon { 945 | width: 16px; 946 | height: 16px; 947 | margin-bottom: -2px; 948 | } 949 | 950 | .fileDeleted { 951 | height: 13px; 952 | width: 172px; 953 | } 954 | 955 | .fileDeletedRes { 956 | height: 13px; 957 | width: 127px; 958 | } 959 | 960 | .navSmall { 961 | font-size: 90%; 962 | } 963 | 964 | .center { 965 | text-align: center; 966 | } 967 | 968 | .bold { 969 | font-weight: bold; 970 | } 971 | 972 | .smaller { 973 | font-size: smaller; 974 | } 975 | 976 | .password { 977 | font-size: smaller; 978 | } 979 | 980 | .passNotice { 981 | font-size: smaller; 982 | padding-left: 6px; 983 | } 984 | 985 | .qcDiv { 986 | display: none; 987 | } 988 | 989 | .qcImg { 990 | height: 1px; 991 | width: 1px; 992 | border: 0; 993 | } 994 | 995 | .jpnFlag { 996 | height: 11px; 997 | width: 17px; 998 | } 999 | 1000 | .globalMessage { 1001 | color: red; 1002 | text-align: center; 1003 | } 1004 | 1005 | .highlightPost { 1006 | background: #f0d6d6 !important; 1007 | border-color: #d69595 !important; 1008 | } 1009 | 1010 | .reply:target, .replyContainer .highlight { 1011 | background: #f0c0b0 !important; 1012 | border: 1px solid #d99f91 !important; 1013 | border-left: none !important; 1014 | border-top: none !important; 1015 | padding: 2px; 1016 | } 1017 | 1018 | span.capcodeAdmin span.name, span.capcodeAdmin span.name a, span.capcodeAdmin span.postertrip, span.capcodeAdmin strong.capcode { 1019 | color: #f00 !important; 1020 | } 1021 | 1022 | span.capcodeMod span.name, span.capcodeMod span.name a, span.capcodeMod span.postertrip, span.capcodeMod strong.capcode { 1023 | color: #800080 !important; 1024 | } 1025 | 1026 | .omittedposts, .abbr { 1027 | color: #707070; 1028 | } 1029 | 1030 | span.spoiler { 1031 | color: #000 !important; 1032 | background: #000 !important; 1033 | } 1034 | 1035 | span.spoiler:hover, span.spoiler:focus { 1036 | color: #fff !important; 1037 | } 1038 | 1039 | table.exif { 1040 | min-width: 450px; 1041 | } 1042 | 1043 | table.exif td { 1044 | color: #707070; 1045 | min-width: 150px; 1046 | font-size: 8pt; 1047 | } 1048 | 1049 | table.exif td b { 1050 | text-decoration: underline; 1051 | } 1052 | 1053 | div.posthover { 1054 | max-width: 400px; 1055 | margin-left: 20px; 1056 | } 1057 | 1058 | div.posthover { 1059 | padding: 5px; 1060 | padding-left: 10px; 1061 | padding-right: 10px; 1062 | } 1063 | 1064 | div.posthover a.fileThumb { 1065 | margin-left: 5px !important; 1066 | margin-right: 10px !important; 1067 | } 1068 | 1069 | div.posthover blockquote { 1070 | margin: 5px; 1071 | } 1072 | 1073 | div.posthover img[data-md5] { 1074 | max-width: 80px; 1075 | max-height: 80px; 1076 | height: auto !important; 1077 | width: auto !important; 1078 | } 1079 | 1080 | div.posthover div.fileThumb { 1081 | margin-left: 0 !important; 1082 | margin-right: 10px !important; 1083 | } 1084 | 1085 | #navtopright, #navbotright { 1086 | float: right; 1087 | } 1088 | 1089 | .preview { 1090 | background: #f0e0d6; 1091 | border: 1px solid #d9b9b7 !important; 1092 | border-right: 2px solid #d9b9b7 !important; 1093 | border-bottom: 2px solid #d9b9b7 !important; 1094 | } 1095 | 1096 | #settingsBox { 1097 | position: absolute; 1098 | right: 10px; 1099 | margin-top: 10px; 1100 | } 1101 | 1102 | div.backlink { 1103 | font-size: x-small !important; 1104 | padding-left: 10px; 1105 | padding-bottom: 5px; 1106 | padding-right: 10px; 1107 | } 1108 | 1109 | .backlink span { 1110 | padding-right: 5px; 1111 | } 1112 | 1113 | div#boardNavMobile { 1114 | padding: 5px; 1115 | background-color: #e7dad6; 1116 | overflow: hidden; 1117 | border-bottom: 1px solid #dcc5b8; 1118 | position: fixed; 1119 | top: 0; 1120 | left: 0; 1121 | width: 100%; 1122 | } 1123 | 1124 | div#boardNavMobile select, div#boardNavMobile option { 1125 | } 1126 | 1127 | div.boardSelect { 1128 | float: left; 1129 | } 1130 | 1131 | div.pageJump { 1132 | float: right; 1133 | padding-right: 10px; 1134 | } 1135 | 1136 | /** QUICK REPLY **/ 1137 | 1138 | div.qrWindow { 1139 | position: absolute; 1140 | z-index: 10000; 1141 | } 1142 | 1143 | div.qrHeader { 1144 | padding: 2px; 1145 | font-size: small; 1146 | text-align: center; 1147 | } 1148 | 1149 | div.qrForm { 1150 | padding: 3px; 1151 | } 1152 | 1153 | span.qrButtonHolder { 1154 | position: absolute; 1155 | right: 5px; 1156 | text-align: right; 1157 | top: 3px; 1158 | } 1159 | 1160 | span.qrButtonHolder a { 1161 | text-decoration: none; 1162 | } 1163 | 1164 | span.qrButtonHolder img { 1165 | cursor: pointer; 1166 | margin-bottom: -1px; 1167 | margin-top: 1px; 1168 | } 1169 | 1170 | .extButton img { 1171 | margin-top: 3px; 1172 | margin-bottom: -3px; 1173 | margin-left: 4px; 1174 | } 1175 | 1176 | .qrMessage { 1177 | padding: 2px; 1178 | text-align: center; 1179 | } 1180 | 1181 | .op .backlinkHr { 1182 | width: 55%; 1183 | } 1184 | 1185 | .useremail .name, .useremail .postertrip { 1186 | color: #0000ee !important; 1187 | } 1188 | 1189 | img.expandedImg { 1190 | max-width: none !important; 1191 | max-height: none !important; 1192 | } 1193 | 1194 | /** this is not important **/ 1195 | 1196 | #captchaContainer { 1197 | overflow: hidden; 1198 | } 1199 | 1200 | #captchaContainer > img { 1201 | float: left; 1202 | border: 1px solid #aaa; 1203 | margin-bottom: 1px; 1204 | } 1205 | 1206 | #captchaInfo { 1207 | float: left; 1208 | margin-left: 5px; 1209 | visibility: hidden; 1210 | } 1211 | 1212 | #captchaResponse { 1213 | width: 292px; 1214 | } 1215 | 1216 | .prettyprint { 1217 | border: none !important; 1218 | background-color: #fff; 1219 | padding: 5px !important; 1220 | display: inline-block; 1221 | max-height: 400px; 1222 | overflow-x: auto; 1223 | max-width: 600px; 1224 | } 1225 | 1226 | input:not([type=submit]):focus, textarea:focus { 1227 | border: 1px solid #e89 !important; 1228 | } 1229 | 1230 | input[type="text"], input[type="password"], textarea { 1231 | -webkit-appearance: none; 1232 | -webkit-border-radius: 0; 1233 | } 1234 | 1235 | /** fix stupid google recaptcha padding in webkit **/ 1236 | 1237 | iframe[src="about:blank"] { 1238 | display: none; 1239 | } 1240 | 1241 | textarea[name="com"] { 1242 | width: 292px; 1243 | } 1244 | 1245 | input[type=password] { 1246 | width: 50px; 1247 | text-align: center; 1248 | } 1249 | 1250 | .deadlink { 1251 | text-decoration: line-through; 1252 | } 1253 | 1254 | #search-cnt { 1255 | display: none; 1256 | } 1257 | 1258 | #search-ok { 1259 | text-decoration: none; 1260 | line-height: 1; 1261 | cursor: pointer; 1262 | } 1263 | 1264 | #search-box { 1265 | width: 100px; 1266 | font-size: 11px; 1267 | height: 12px; 1268 | margin-right: 5px; 1269 | padding: 0; 1270 | } 1271 | 1272 | #tooltip { 1273 | position: absolute; 1274 | background-color: #181f24; 1275 | font-size: 11px; 1276 | line-height: 13px; 1277 | padding: 3px 6px; 1278 | z-index: 100000; 1279 | word-wrap: break-word; 1280 | white-space: pre-line; 1281 | max-width: 400px; 1282 | color: #fff; 1283 | text-align: center; 1284 | } 1285 | 1286 | .tip-top-left:before, .tip-top-right:before, .tip-top:before { 1287 | content: ""; 1288 | display: block; 1289 | width: 0; 1290 | height: 0; 1291 | position: absolute; 1292 | border-left: 4px solid transparent; 1293 | border-right: 4px solid transparent; 1294 | border-top: 4px solid #181f24; 1295 | margin-left: -4px; 1296 | bottom: -4px; 1297 | } 1298 | 1299 | .tip-top:before { 1300 | left: 50%; 1301 | } 1302 | 1303 | .tip-top-right:before { 1304 | left: 2px; 1305 | margin-left: 0; 1306 | } 1307 | 1308 | .tip-top-left:before { 1309 | right: 2px; 1310 | } 1311 | 1312 | .dd-menu { 1313 | position: absolute; 1314 | font-size: 13px; 1315 | line-height: 1.3em; 1316 | } 1317 | 1318 | .dd-menu a { 1319 | text-decoration: none; 1320 | color: inherit !important; 1321 | display: block; 1322 | } 1323 | 1324 | .dd-menu ul { 1325 | background-color: #f0e0d6; 1326 | border: 1px solid #d9bfb7; 1327 | border-bottom: none; 1328 | list-style: none; 1329 | padding: 0; 1330 | margin: 0; 1331 | white-space: nowrap; 1332 | } 1333 | 1334 | .dd-menu ul ul { 1335 | display: none; 1336 | position: absolute; 1337 | } 1338 | 1339 | .dd-menu li { 1340 | cursor: pointer; 1341 | position: relative; 1342 | padding: 2px 4px; 1343 | vertical-align: middle; 1344 | border-bottom: 1px solid #d9bfb7; 1345 | } 1346 | 1347 | .dd-menu li:hover { 1348 | background-color: #ffffee; 1349 | } 1350 | 1351 | .dd-menu li:hover ul { 1352 | display: block; 1353 | left: 100%; 1354 | margin-top: -3px; 1355 | } 1356 | 1357 | .dd-menu.dd-menu-left li:hover ul { 1358 | left: auto; 1359 | right: 100%; 1360 | } -------------------------------------------------------------------------------- /css/md2016.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: #f5f5f5; 3 | color: #000; 4 | font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif; 5 | font-size: 14px; 6 | font-weight: 400; 7 | line-height: 20px; 8 | padding: 0; 9 | margin: 0; 10 | } 11 | 12 | .board { 13 | background: #e5e5e5; 14 | border-top: 1px solid #ccc; 15 | margin-bottom: 50px; 16 | padding-bottom: 25px; 17 | } 18 | 19 | .is_index .board { 20 | padding-bottom: 50px; 21 | } 22 | 23 | a, a:visited, .quoteLink, .quotelink, .deadlink, div#boardNavMobile .pageJump a, .persistentNav .pageJump a, .summary a.replylink, div.post div.postInfo span.postNum a:visited, div.post div.postInfo span.postNum a.replylink { 24 | color: rgb(83, 109, 254) !important; 25 | text-decoration: none !important; 26 | } 27 | 28 | a:hover, .quoteLink:hover, .quotelink:hover, .deadlink:hover, .summary a.replylink:hover, .persistentNav .pageJump a:hover, div#boardNavMobile .pageJump a:hover, div.post div.postInfo span.postNum a:hover, .posteruid .hand:hover { 29 | color: rgb(83, 109, 254) !important; 30 | text-decoration: underline !important; 31 | } 32 | 33 | .postInfo a.postMenuBtn, .postInfo a.postMenuBtn:hover { 34 | color: rgb(83, 109, 254) !important; 35 | text-decoration: none !important; 36 | } 37 | 38 | div.postContainer { 39 | display: block; 40 | width: 80%; 41 | margin: 15px auto 0 auto; 42 | } 43 | 44 | .thread { 45 | margin-top: 30px !important; 46 | padding-top: 15px; 47 | border-top: 1px solid #ccc; 48 | } 49 | 50 | .thread:first-child { 51 | padding-top: 0; 52 | border-top: none; 53 | } 54 | 55 | .md-plus-btn { 56 | border-radius: 50%; 57 | font-size: 24px; 58 | height: 56px; 59 | margin: auto; 60 | min-width: 56px; 61 | width: 56px; 62 | padding: 0; 63 | overflow: hidden; 64 | box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24); 65 | position: relative; 66 | line-height: normal; 67 | position: fixed; 68 | right: 25px; 69 | bottom: 25px; 70 | } 71 | 72 | div.boardBanner > div.boardTitle { 73 | margin-top: 40px; 74 | font-size: 36px; 75 | color: #676767; 76 | margin-bottom: 40px; 77 | font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif; 78 | font-weight: normal; 79 | letter-spacing: 0; 80 | } 81 | 82 | :-ms-input-placeholder { 83 | color: rgba(0, 0, 0, 0.35); 84 | } 85 | 86 | ::-webkit-input-placeholder { 87 | color: rgba(0, 0, 0, 0.35); 88 | } 89 | 90 | :-moz-placeholder { 91 | color: rgba(0, 0, 0, 0.35); 92 | } 93 | 94 | ::-moz-placeholder { 95 | color: rgba(0, 0, 0, 0.35); 96 | } 97 | 98 | #togglePostFormLink, .ad-plea, #blotter tfoot td, #ctrl-top, div.post div.postInfo span.postNum, div.pagelist div.pages { 99 | color: transparent; 100 | } 101 | 102 | table.postForm > tbody > tr > td:first-child, .thread-stats { 103 | color: #000; 104 | } 105 | 106 | .postInfo .backlink a.quotelink, .postInfo .backlink a.quotelink:hover { 107 | color: rgb(83, 109, 254) !important; 108 | } 109 | 110 | .ws input[type="text"], .nws input[type="text"] { 111 | border: none !important; 112 | border-bottom: 1px solid rgba(0, 0, 0, 0.12) !important; 113 | font-size: 14px !important; 114 | font-family: "Helvetica", "Arial", sans-serif; 115 | padding: 4px !important; 116 | -webkit-transition: border-bottom-color 0.2s; 117 | transition: border-bottom-color 0.2s; 118 | } 119 | 120 | .ws input[type="text"]:focus, .ws #quickReply input[type="submit"]:focus { 121 | border-bottom: 1px solid rgb(83, 109, 254) !important; 122 | } 123 | 124 | .nws input[type="text"]:focus, .nws #quickReply input[type="submit"]:focus { 125 | border-bottom: 1px solid rgb(244, 67, 54) !important; 126 | } 127 | 128 | .tomorrow .extPanel, .recaptcha_input_area #recaptcha_response_field { 129 | border: 0 !important; 130 | } 131 | 132 | .ws input[type="submit"], .nws input[type="submit"], button { 133 | border: none; 134 | border-radius: 2px; 135 | position: relative; 136 | height: 28px; 137 | min-width: 64px; 138 | display: inline-block; 139 | text-transform: uppercase; 140 | outline: none; 141 | cursor: pointer; 142 | background: rgb(83, 109, 254); 143 | color: #fff; 144 | font-size: 14px; 145 | font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif; 146 | line-height: 28px; 147 | margin-left: 8px; 148 | } 149 | 150 | .nws input[type="submit"], .nws button { 151 | background: rgb(244, 67, 54); 152 | } 153 | 154 | #qrCaptchaContainerAlt { 155 | margin-bottom: 8px; 156 | } 157 | 158 | #postForm input[type="text"] { 159 | margin: 4px 0; 160 | } 161 | 162 | #postForm td:first-child { 163 | text-align: right; 164 | padding-right: 10px; 165 | } 166 | 167 | .ws textarea, .nws textarea { 168 | border: 0 !important; 169 | } 170 | 171 | .ws textarea:focus, .nws textarea:focus { 172 | border: 0 !important; 173 | } 174 | 175 | table#postForm td { 176 | background: transparent; 177 | border: 0; 178 | font-weight: normal; 179 | } 180 | 181 | #toggleMsgBtn { 182 | margin-left: 5px !important; 183 | } 184 | 185 | .rules { 186 | text-align: center; 187 | } 188 | 189 | #qrHeader { 190 | background: #676767 !important; 191 | color: #fff !important; 192 | } 193 | 194 | #qrHeader a { 195 | color: #fff !important; 196 | } 197 | 198 | #search-box { 199 | height: inherit; 200 | line-height: inherit; 201 | margin: 0; 202 | padding: inherit; 203 | } 204 | 205 | #ctrl-top { 206 | padding-bottom: 10px; 207 | border-top: 1px solid #ddd; 208 | padding-top: 10px; 209 | text-align: center; 210 | } 211 | 212 | .reply:target, .reply.highlight { 213 | background: #eee !important; 214 | padding: 10px !important; 215 | border: 0 !important; 216 | } 217 | 218 | .navLinks + hr, .open-qr-wrap, .board hr, #bannerCnt, #ctrl-top + hr, #ctrl-top > hr { 219 | display: none; 220 | } 221 | 222 | .navLinks { 223 | padding-bottom: 8px; 224 | color: transparent; 225 | width: 80%; 226 | margin: auto; 227 | } 228 | 229 | .navLinks label { 230 | color: rgb(83, 109, 254); 231 | } 232 | 233 | .navLinks label + span { 234 | color: #000; 235 | } 236 | 237 | .navLinksBot { 238 | margin-top: 30px; 239 | text-align: left; 240 | } 241 | 242 | div#boardNavDesktop, div#boardNavDesktopFoot, div#boardNavMobile { 243 | background: #fff; 244 | padding: 5px 10px; 245 | box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.08), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px 0 rgba(0, 0, 0, 0.04); 246 | margin-bottom: 25px; 247 | color: transparent; 248 | font-size: 14px; 249 | } 250 | 251 | div#boardNavMobile { 252 | color: #000; 253 | border: 0; 254 | } 255 | 256 | div#boardNavDesktopFoot { 257 | margin-bottom: 0; 258 | margin-top: 25px; 259 | padding-top: 25px; 260 | padding-bottom: 25px; 261 | } 262 | 263 | div#boardNavDesktop a, div#boardNavDesktopFoot a { 264 | margin-left: -3px; 265 | margin-right: -3px; 266 | padding: 0; 267 | } 268 | 269 | .persistentNav .pageJump a { 270 | margin: 0; 271 | padding-right: 5px; 272 | } 273 | 274 | div.pagelist { 275 | background: #fff; 276 | margin-top: 25px; 277 | margin-bottom: 25px; 278 | border: 0; 279 | box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); 280 | margin-left: 25px; 281 | padding: 8px; 282 | border-radius: 2px; 283 | } 284 | 285 | div#absbot { 286 | background: #fff; 287 | color: #999; 288 | } 289 | 290 | div#absbot #footer-links a { 291 | text-decoration: none !important; 292 | color: rgb(83, 109, 254) !important; 293 | } 294 | 295 | div#absbot #footer-links a:hover { 296 | text-decoration: underline !important; 297 | } 298 | 299 | .bottomCtrl { 300 | display: none; 301 | } 302 | 303 | .ad-plea-bottom + hr { 304 | display: none; 305 | } 306 | 307 | div#boardNavDesktopFoot { 308 | margin-bottom: 0; 309 | } 310 | 311 | div.post, .extPanel, div.reply, .dd-menu ul { 312 | background: #fff; 313 | border-radius: 2px; 314 | box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); 315 | border: none; 316 | } 317 | 318 | div.pagelist div.cataloglink { 319 | border: 0; 320 | } 321 | 322 | div.post { 323 | max-width: 75%; 324 | margin: 0; 325 | padding: 10px; 326 | } 327 | 328 | .dd-menu li { 329 | padding: 6px 10px !important; 330 | border: 0 !important; 331 | } 332 | 333 | .dd-menu li:hover { 334 | background-color: #eee !important; 335 | } 336 | 337 | #quote-preview { 338 | border: 0 !important; 339 | padding: 10px !important; 340 | } 341 | 342 | div.op { 343 | display: block; 344 | max-width: none; 345 | } 346 | 347 | .fileText { 348 | color: #999; 349 | font-size: 12px; 350 | margin-top: 2px; 351 | } 352 | 353 | .op .fileText { 354 | margin-top: -5px; 355 | margin-bottom: 5px; 356 | } 357 | 358 | .fileText a { 359 | color: #999 !important; 360 | text-decoration: none; 361 | } 362 | 363 | .posteruid, .dateTime { 364 | color: #999; 365 | } 366 | 367 | .postInfo input[type="checkbox"] { 368 | display: none; 369 | } 370 | 371 | div.sideArrows { 372 | display: none; 373 | } 374 | 375 | hr { 376 | border: 0; 377 | border-bottom: 1px solid #ddd; 378 | } 379 | 380 | div.post:after { 381 | display: block; 382 | content: ' '; 383 | clear: both; 384 | } 385 | 386 | div.post div.file .fileThumb img { 387 | object-fit: cover; 388 | } 389 | 390 | div.reply div.file .fileThumb img:not(.expanded-thumb) { 391 | border-radius: 75px; 392 | width: 75px !important; 393 | height: 75px !important; 394 | } 395 | 396 | div.op div.file .fileThumb img:not(.expanded-thumb) { 397 | border-radius: 150px; 398 | width: 150px !important; 399 | height: 150px !important; 400 | } 401 | 402 | .postMessage { 403 | margin-left: 20px; 404 | margin-top: 5px; 405 | } 406 | 407 | #boardNavDesktop::after { 408 | content: ' '; 409 | display: block; 410 | clear: both; 411 | } 412 | 413 | span.summary { 414 | border-radius: 0 0 2px 2px; 415 | background-color: #f5f5f5; 416 | width: 80%; 417 | display: block; 418 | margin: -1px auto 0 auto; 419 | box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); 420 | border-top: 1px solid rgba(0, 0, 0, 0.1); 421 | text-indent: 10px; 422 | padding: 10px 0; 423 | } -------------------------------------------------------------------------------- /css/yotsubluemobile.css: -------------------------------------------------------------------------------- 1 | /** Here's one for you: internet explorer in wp7 can only handle 1 stylesheet at a time it seems **/ 2 | 3 | /** Chrome Mobile seems to dislike media="" in html, so we do it this way instead. **/ 4 | 5 | @media only screen and (max-width: 480px) { 6 | /** GENERIC / ELEMENT STYLING **/ 7 | 8 | html { 9 | -moz-text-size-adjust: 100%; 10 | -webkit-text-size-adjust: 100%; 11 | -ms-text-size-adjust: 100%; 12 | } 13 | 14 | .postMenuBtn { 15 | -webkit-transform: rotate(90deg); 16 | -moz-transform: rotate(90deg); 17 | -ms-transform: rotate(90deg); 18 | transform: rotate(90deg); 19 | margin: 4px -5px 0 4px !important; 20 | float: left; 21 | font-weight: bold; 22 | opacity: 1 !important; 23 | height: .5em !important; 24 | font-size: 16px; 25 | } 26 | 27 | .dd-menu { 28 | font-size: 16px; 29 | line-height: 2em; 30 | } 31 | 32 | .adg-rects > span.mobile { 33 | display: inline-block !important; 34 | } 35 | 36 | .party-hat { 37 | left: -15px; 38 | margin-top: -30px; 39 | position: absolute; 40 | width: 100px; 41 | pointer-events: none; 42 | } 43 | 44 | .pu-img { 45 | background: url('//s.4cdn.org/image/minileaf@2x.gif'); 46 | background-size: 100%; 47 | } 48 | 49 | body { 50 | background: #eef2ff url(/image/fade-blue.png) center top repeat-x; 51 | color: #000000; 52 | font-family: arial, helvetica, sans-serif; 53 | font-size: 10pt; 54 | margin-left: 0; 55 | margin-right: 0; 56 | margin-top: 5px; 57 | padding-left: 0; 58 | padding-right: 0; 59 | width: 100%; 60 | } 61 | 62 | embed { 63 | display: none !important; 64 | } 65 | 66 | .jlist-link { 67 | margin: 15px auto 30px auto; 68 | } 69 | 70 | a, .useremail:not(:hover) .name:not(.capcode), .useremail:not(:hover) .postertrip:not(.capcode) { 71 | color: #34345c !important; 72 | } 73 | 74 | a.replylink, div#absbot a { 75 | text-decoration: underline !important; 76 | } 77 | 78 | a.replylink:not(:hover), div#absbot a:not(:hover) { 79 | color: #34345c !important; 80 | } 81 | 82 | a:hover, .useremail .name:hover, .useremail .postertrip:hover, a.quoteLink:hover, a.quotelink:hover, a.deadlink:hover, .useremail *:hover, .useremail:hover * { 83 | color: #dd0000 !important; 84 | } 85 | 86 | .posteruid .hand:hover { 87 | color: #dd0000 !important; 88 | } 89 | 90 | img { 91 | border: none; 92 | } 93 | 94 | img.topad, .topad > div, .topad a img { 95 | width: 300px; 96 | height: 250px; 97 | } 98 | 99 | img.middlead, .middlead > div, .middlead a img { 100 | width: 234px; 101 | height: 30px; 102 | max-width: 100%; 103 | overflow: hidden; 104 | margin: auto; 105 | } 106 | 107 | img.bottomad, .bottomad > div, .bottomad a img { 108 | width: 320px; 109 | height: 40px; 110 | max-width: 100%; 111 | overflow: hidden; 112 | margin: auto; 113 | } 114 | 115 | ul.rules { 116 | display: none; 117 | } 118 | 119 | .button a { 120 | text-decoration: none !important; 121 | } 122 | 123 | div.boardBanner { 124 | margin-top: 40px !important; 125 | } 126 | 127 | .backlink.mobile { 128 | background-color: #c9cde8; 129 | border-top: 1px solid #b7c5d9; 130 | } 131 | 132 | .mobile { 133 | display: block !important; 134 | clear: left !important; 135 | } 136 | 137 | .noPictures .mFileInfo { 138 | display: none !important; 139 | } 140 | 141 | .postLink.mobile { 142 | clear: both !important; 143 | } 144 | 145 | .mobileinline { 146 | display: inline !important; 147 | } 148 | 149 | .mobileib { 150 | display: inline-block !important; 151 | } 152 | 153 | span.replyTextM { 154 | display: inline !important; 155 | } 156 | 157 | .desktop { 158 | display: none !important; 159 | } 160 | 161 | .hideMobile { 162 | display: none !important; 163 | } 164 | 165 | div.board > hr { 166 | border: none; 167 | border-top: 1px solid #b7c5d9; 168 | height: 0; 169 | margin-top: 30px !important; 170 | margin-bottom: 30px !important; 171 | } 172 | 173 | div.board > hr:last-of-type { 174 | margin-bottom: 10px !important; 175 | } 176 | 177 | hr.abovePostForm { 178 | width: 90%; 179 | } 180 | 181 | span.x-small { 182 | font-size: x-small; 183 | } 184 | 185 | /** Mobile Specific CSS **/ 186 | 187 | div.postLink { 188 | background-color: #c9cde8; 189 | border-top: 1px solid #b7c5d9; 190 | padding: 5px; 191 | overflow: hidden; 192 | margin: -5px; 193 | } 194 | 195 | div.postLink span { 196 | float: left; 197 | } 198 | 199 | div.postLink a { 200 | float: right; 201 | color: #34345c !important; 202 | } 203 | 204 | .mobilePostFormToggle { 205 | text-align: center; 206 | font-weight: bold; 207 | margin: 0 auto; 208 | padding-top: 15px; 209 | } 210 | 211 | a.mobilePostFormToggle { 212 | text-align: center; 213 | display: inline-block !important; 214 | } 215 | 216 | div.mobilePostFormToggle div { 217 | width: 300px; 218 | background-color: #98e; 219 | padding-top: 5px; 220 | padding-bottom: 5px; 221 | border: 1px solid #000; 222 | margin: 0 auto; 223 | } 224 | 225 | div.post div.file .fileThumb img { 226 | max-width: 100px; 227 | max-height: 100px; 228 | object-fit: scale-down; 229 | } 230 | 231 | span.fileThumb { 232 | margin-left: 0 !important; 233 | margin-right: 5px !important; 234 | } 235 | 236 | div.post div.file .fileThumb { 237 | margin-left: 5px !important; 238 | margin-right: 10px !important; 239 | text-decoration: none; 240 | } 241 | 242 | div.post div.file div.fileText { 243 | display: none; 244 | } 245 | 246 | div.sideArrows { 247 | display: none; 248 | } 249 | 250 | div.reply { 251 | padding: 2px; 252 | background-color: #d6daf0; 253 | margin: 0; 254 | border: 1px solid #b7c5d9; 255 | } 256 | 257 | div.replyContainer { 258 | background-color: #d6daf0; 259 | margin: 5px 5px 0 5px; 260 | padding-left: 0; 261 | } 262 | 263 | .is_index div.thread { 264 | padding: 0 7px; 265 | } 266 | 267 | .is_index div.replyContainer { 268 | margin: 7px 0 0 0; 269 | } 270 | 271 | .is_index div.opContainer { 272 | margin: 0 -7px; 273 | } 274 | 275 | div.opContainer { 276 | padding: 5px; 277 | display: block; 278 | overflow: hidden; 279 | background-color: #d6daf0; 280 | border: 1px solid #b7c5d9 !important; 281 | } 282 | 283 | span.summary:not(.preview-summary) { 284 | padding: 5px; 285 | text-align: center; 286 | display: block; 287 | background-color: #c9cde8; 288 | border-bottom: 1px solid #b7c5d9 !important; 289 | margin-top: 0; 290 | margin-bottom: 5px; 291 | font-weight: bold; 292 | } 293 | 294 | div.postLink span.info { 295 | color: #34345c; 296 | margin-top: 8px; 297 | } 298 | 299 | blockquote { 300 | margin: 10px !important; 301 | } 302 | 303 | blockquote.postMessage { 304 | font-size: 11pt; 305 | } 306 | 307 | .omittedposts, .abbr { 308 | color: #707070 !important; 309 | font-size: 10pt !important; 310 | } 311 | 312 | div.thread { 313 | border-top: none; 314 | } 315 | 316 | div.opContainer div.postInfo { 317 | display: none !important; 318 | } 319 | 320 | div.post div.postInfoM { 321 | overflow: hidden; 322 | border-bottom: 1px solid #b7c5d9; 323 | background-color: #c9cde8; 324 | padding: 5px; 325 | margin: -5px -6px 5px -5px; 326 | } 327 | 328 | div.replyContainer div.postInfoM { 329 | margin: 0; 330 | } 331 | 332 | div.post div.postInfoM span.postNum, div.postInfo span.postNum { 333 | float: left; 334 | } 335 | 336 | div.post div.postInfoM span.postNum a, div.postInfo span.postNum a { 337 | text-decoration: none; 338 | color: #000000 !important; 339 | } 340 | 341 | div.post div.postInfoM span.postNum a:hover { 342 | color: red; 343 | } 344 | 345 | /* Name */ 346 | 347 | div.post div.postInfoM span.nameBlock, div.postInfo span.nameBlock { 348 | display: inline; 349 | float: left; 350 | clear: left; 351 | } 352 | 353 | div.post div.postInfoM span.nameBlock span.name, div.postInfo span.nameBlock span.name { 354 | color: #117743; 355 | font-weight: bold; 356 | } 357 | 358 | div.post div.postInfoM span.nameBlock span.tripcode, div.postInfo span.nameBlock span.tripcode { 359 | color: #117743; 360 | } 361 | 362 | /* Date/Time */ 363 | 364 | div.post div.postInfoM span.dateTime { 365 | float: right; /*font-style: italic;*/ 366 | text-align: right; 367 | color: black !important; 368 | } 369 | 370 | div.post div.postInfoM span.time { 371 | } 372 | 373 | div.post div.postInfoM span.subject { 374 | color: #0f0c5d; 375 | font-weight: bold; 376 | } 377 | 378 | span.fileText { 379 | font-size: smaller; 380 | } 381 | 382 | div.replyContainer div.reply { 383 | width: 100%; 384 | padding: 0 !important; 385 | } 386 | 387 | div.replyContainer div.post div.postInfo { 388 | overflow: hidden; 389 | border-bottom: 1px solid #b7c5d9; 390 | background-color: #c9cde8; 391 | padding: 3px; 392 | margin: 0; 393 | } 394 | 395 | div.replyContainer div.post div.postInfo input[type=checkbox] { 396 | display: none; 397 | } 398 | 399 | div.replyContainer div.post div.postInfo span.postNum { 400 | font-style: italic; 401 | } 402 | 403 | div.replyContainer div.post div.postInfo span.userInfo { 404 | float: left; 405 | padding-left: 5px; 406 | } 407 | 408 | div.replyContainer div.post div.postInfo span.nameBlock { 409 | } 410 | 411 | div.replyContainer div.post div.postInfo span.postNum a:first-child:after { 412 | content: " "; 413 | } 414 | 415 | div.replyContainer div.post div.postInfo span.dateTime { 416 | float: right; 417 | text-align: right; 418 | padding-right: 10px; 419 | font-style: italic; 420 | } 421 | 422 | div.replyContainer div.post div.postInfo span.dateTime span.date { 423 | display: block; 424 | } 425 | 426 | 427 | 428 | div.replyContainer div.post div.file { 429 | padding: 5px; 430 | } 431 | 432 | div.mPagelist { 433 | margin-top: 10px; 434 | text-align: center; 435 | border-bottom: 1px solid #b7c5d9; 436 | padding-bottom: 10px; 437 | color: #89a; 438 | } 439 | 440 | div.mPagelist strong { 441 | color: #34345c; 442 | } 443 | 444 | div.mPagelist > div.prev, div.mPagelist div.next { 445 | margin: 20px 2px 15px; 446 | display: inline-block; 447 | } 448 | 449 | .button { 450 | border-radius: 3px; 451 | padding: 6px 10px 5px 10px; 452 | font-weight: bold; 453 | background-color: #d6daf0; 454 | border: 1px solid #b7c5d9; 455 | user-select: none; 456 | background-image: url(/image/buttonfade-blue.png); 457 | background-repeat: repeat-x; 458 | text-decoration: none; 459 | color: #34345c !important; 460 | } 461 | 462 | #globalToggle { 463 | width: 200px; 464 | display: inline; 465 | text-align: center; 466 | margin: 0 auto; 467 | margin-bottom: 10px; 468 | } 469 | 470 | .redButton { 471 | background-color: #ffadad; 472 | background-image: url(/image/buttonfade-red.png); 473 | border: 1px solid #c45858; 474 | color: #800 !important; 475 | } 476 | 477 | div.mPagelist span { 478 | padding-left: 3px; 479 | padding-right: 3px; 480 | font-size: larger; 481 | } 482 | 483 | .button:hover { 484 | cursor: pointer; 485 | } 486 | 487 | .mobileCatalogLink, div.absBotText { 488 | margin-top: 10px; 489 | } 490 | 491 | .mobileCatalogLink { 492 | font-size: larger; 493 | } 494 | 495 | #disable-mobile { 496 | font-size: small !important; 497 | } 498 | 499 | #enable-mobile { 500 | font-size: small !important; 501 | display: none; 502 | } 503 | 504 | .absBotDisclaimer { 505 | display: none !important; 506 | } 507 | 508 | div#boardNavMobile { 509 | padding: 2px 4px; 510 | background-color: #d6daf0; 511 | overflow: hidden; 512 | border-bottom: 2px solid #b7c5d9; 513 | position: fixed; 514 | top: 0; 515 | width: 100%; 516 | font-size: x-small; 517 | } 518 | 519 | div#boardNavMobile select, div#boardNavMobile option { 520 | font-size: x-small; 521 | } 522 | 523 | div.boardSelect { 524 | float: left; 525 | } 526 | 527 | div.boardSelect > strong { 528 | padding-right: 5px; 529 | } 530 | 531 | div.pageJump { 532 | float: right; 533 | padding-right: 5px; 534 | padding-top: 3px; 535 | font-size: 7.5pt; 536 | } 537 | 538 | .pageJump a { 539 | text-decoration: none; 540 | padding-right: 5px; 541 | } 542 | 543 | div.postingMode { 544 | background-color: #e04000; 545 | padding: 3px; 546 | text-align: center; 547 | width: 300px; 548 | margin: 0 auto; 549 | } 550 | 551 | div.navLinks { 552 | margin-top: 9px !important; 553 | margin-bottom: 0 !important; 554 | text-align: center; 555 | } 556 | 557 | /** WP7 ADDITIONS **/ 558 | 559 | div.post div.postInfo span.postNum a { 560 | text-decoration: none; 561 | color: #000000; 562 | } 563 | 564 | a.quoteLink { 565 | color: #d00 !important; 566 | } 567 | 568 | div.boardBanner { 569 | text-align: center; 570 | clear: both; 571 | } 572 | 573 | div.boardBanner > img { 574 | border: 1px solid #34345c; 575 | margin: 5px 0 5px 0; 576 | height: 50px; 577 | width: 150px; 578 | max-width: 100%; 579 | } 580 | 581 | div.boardBanner > div.boardTitle { 582 | font-family: Tahoma, sans-serif; 583 | font-size: 28px; 584 | font-weight: bold; 585 | letter-spacing: -2px; 586 | margin-top: 0; 587 | } 588 | 589 | div.boardBanner > div.boardSubtitle { 590 | font-size: x-small; 591 | } 592 | 593 | div.post div.file .fileThumb img { 594 | border: none; 595 | float: left; 596 | } 597 | 598 | span.subject { 599 | display: block; 600 | } 601 | 602 | hr { 603 | border: none; 604 | border-top: 1px solid #b7c5d9; 605 | height: 0; 606 | } 607 | 608 | .commentpostername { 609 | font-weight: bold; 610 | } 611 | 612 | .identityIcon { 613 | margin-bottom: -3px; 614 | height: 16px; 615 | width: 16px; 616 | } 617 | 618 | .stickyIcon { 619 | margin-bottom: -2px; 620 | padding-left: 2px; 621 | height: 16px; 622 | width: 16px; 623 | } 624 | 625 | .archivedIcon, .closedIcon { 626 | margin-bottom: -2px; 627 | margin-left: -1px; 628 | height: 16px; 629 | width: 16px; 630 | } 631 | 632 | .trashIcon { 633 | width: 16px; 634 | height: 16px; 635 | margin-bottom: -2px; 636 | } 637 | 638 | .fileDeleted { 639 | height: 13px; 640 | width: 172px; 641 | } 642 | 643 | .fileDeletedRes { 644 | height: 13px; 645 | width: 127px; 646 | } 647 | 648 | .navSmall { 649 | font-size: 90%; 650 | } 651 | 652 | .center { 653 | text-align: center; 654 | } 655 | 656 | .bold { 657 | font-weight: bold; 658 | } 659 | 660 | .smaller { 661 | font-size: smaller; 662 | } 663 | 664 | .password { 665 | font-size: smaller; 666 | } 667 | 668 | .passNotice { 669 | font-size: smaller; 670 | padding-left: 3px; 671 | } 672 | 673 | .qcDiv { 674 | display: none; 675 | } 676 | 677 | .qcImg { 678 | height: 1px; 679 | width: 1px; 680 | border: 0; 681 | } 682 | 683 | .jpnFlag { 684 | height: 11px; 685 | width: 17px; 686 | } 687 | 688 | .globalMessage { 689 | color: red; 690 | text-align: center; 691 | } 692 | 693 | .highlightPost { 694 | background: #f0d6d6 !important; 695 | } 696 | 697 | span.postertrip { 698 | color: #117743; 699 | font-weight: normal !important; 700 | } 701 | 702 | span.capcodeAdmin span.name, span.capcodeAdmin span.name a, span.capcodeAdmin span.postertrip, span.capcodeAdmin strong.capcode { 703 | color: #f00 !important; 704 | } 705 | 706 | span.capcodeMod span.name, span.capcodeMod span.name a, span.capcodeMod span.postertrip, span.capcodeMod strong.capcode { 707 | color: #800080 !important; 708 | } 709 | 710 | .omittedposts, .abbr { 711 | color: #070707; 712 | } 713 | 714 | span.spoiler { 715 | color: #000 !important; 716 | background: #000 !important; 717 | } 718 | 719 | span.spoiler:hover, span.spoiler:focus { 720 | color: #fff !important; 721 | } 722 | 723 | table.exif { 724 | display: none; 725 | min-width: 450px; 726 | } 727 | 728 | table.exif td { 729 | color: #070707; 730 | min-width: 150px; 731 | font-size: 8pt; 732 | } 733 | 734 | table.exif td b { 735 | text-decoration: underline; 736 | } 737 | 738 | #navtopright, #navbotright { 739 | float: right; 740 | } 741 | 742 | .preview { 743 | background-color: #d6daf0; 744 | border: 1px solid #b7c5d9 !important; 745 | border-right-width: 2px !important; 746 | border-bottom-width: 2px !important; 747 | } 748 | 749 | div.posthover { 750 | max-width: 400px; 751 | margin-left: 20px; 752 | } 753 | 754 | div.posthover { 755 | padding: 5px; 756 | padding-left: 10px; 757 | padding-right: 10px; 758 | } 759 | 760 | div.posthover a.fileThumb { 761 | margin-left: 5px !important; 762 | margin-right: 10px !important; 763 | } 764 | 765 | div.posthover blockquote { 766 | margin: 5px; 767 | } 768 | 769 | div.posthover img[data-md5] { 770 | max-width: 80px; 771 | max-height: 80px; 772 | } 773 | 774 | div.posthover div.fileThumb { 775 | margin-left: 0 !important; 776 | margin-right: 10px !important; 777 | } 778 | 779 | #settingsBox { 780 | position: absolute; 781 | right: 10px; 782 | margin-top: 10px; 783 | background-color: #d6daf0; 784 | } 785 | 786 | div.mPagelist a { 787 | text-decoration: none !important; 788 | } 789 | 790 | .pages a { 791 | bottom: -1px; 792 | position: relative; 793 | } 794 | 795 | img.expandedImg { 796 | max-width: auto !important; 797 | max-height: auto !important; 798 | } 799 | 800 | .prettyprint { 801 | border: none !important; 802 | background-color: #fff; 803 | padding: 5px !important; 804 | display: inline-block; 805 | max-height: 400px; 806 | max-width: 300px; 807 | word-wrap: break-word; 808 | } 809 | 810 | td > input[type="text"], td > textarea, td > input[type="password"] { 811 | width: 220px !important; 812 | margin-right: 0 !important; 813 | } 814 | 815 | #captchaFormPart > td > div { 816 | width: 310px !important; 817 | overflow: hidden; 818 | margin: 0 auto; 819 | } 820 | 821 | #postForm { 822 | width: auto; 823 | } 824 | 825 | #postForm input[name="sub"] { 826 | width: 160px !important; 827 | } 828 | 829 | #postForm input[type="submit"] { 830 | width: 60px; 831 | padding: 2px 4px 3px 4px; 832 | margin: 0; 833 | } 834 | 835 | #postForm input[type="password"] { 836 | width: 70px !important; 837 | } 838 | 839 | td > input { 840 | margin-left: 1px; 841 | } 842 | 843 | tr.mobile { 844 | display: table-row !important; 845 | } 846 | 847 | tr.mobile td { 848 | padding: 5px; 849 | } 850 | 851 | .recaptcha_image_cell { 852 | width: auto !important; 853 | padding: 0 !important; 854 | } 855 | 856 | #captchaFormPart > td > div { 857 | margin-left: 8px; 858 | } 859 | 860 | #recaptcha_table tr > td:last-child { 861 | display: none; 862 | } 863 | 864 | #recaptcha_table tr[height="73"] { 865 | height: auto !important; 866 | } 867 | 868 | #recaptcha_table tr > td { 869 | padding: 0 !important; 870 | } 871 | 872 | #recaptcha_image { 873 | width: 280px !important; 874 | } 875 | 876 | .recaptchatable .recaptcha_image_cell center { 877 | } 878 | 879 | #recaptcha_response_field { 880 | width: 272px !important; 881 | margin-left: 3px; 882 | margin-top: -1px; 883 | font-size: 10pt !important; 884 | } 885 | 886 | #recaptcha_image > img { 887 | width: 280px !important; 888 | } 889 | 890 | #postForm:not(.hideMobile) { /*max-width: 280px !important;*/ 891 | overflow: hidden; 892 | margin-top: 20px; 893 | display: table; 894 | } 895 | 896 | form[name="post"] { 897 | margin: auto; 898 | max-width: 100%; 899 | } 900 | 901 | input[type="text"], input[type="password"], textarea { 902 | -webkit-appearance: none; 903 | -webkit-border-radius: 0; 904 | } 905 | 906 | input:focus, textarea:focus { 907 | border: 1px solid #9988ee !important; 908 | } 909 | 910 | a:hover, .posteruid .hand:hover { 911 | color: #dd0000 !important; 912 | } 913 | 914 | .button a:hover, a.button:hover { 915 | color: #34345c !important; 916 | } 917 | 918 | a.redButton:hover, a.redButton:focus { 919 | color: #880000 !important; 920 | } 921 | 922 | table#recaptcha_table > tbody > tr:first-child > td:nth-child(2) { 923 | display: none; 924 | } 925 | 926 | .reply:target, .reply:focus, .reply.highlight { 927 | border: 1px solid #b7c5d9 !important; 928 | background: #d6bad0 !important; 929 | } 930 | 931 | .mFileInfo { 932 | padding-top: 5px; 933 | text-align: center; 934 | color: #707070 !important; 935 | font-size: 9pt !important; 936 | text-decoration: none !important; 937 | } 938 | 939 | a.replylink, div#absbot a { 940 | text-decoration: underline !important; 941 | } 942 | 943 | a.replylink:not(:hover), div#absbot a:not(:hover) { 944 | color: #34345c !important; 945 | } 946 | 947 | .mobileSpoiler { 948 | padding: 2px !important; 949 | } 950 | 951 | #mpostform { 952 | text-align: center; 953 | margin-top: 10px; 954 | } 955 | 956 | 957 | } -------------------------------------------------------------------------------- /css/yui.css: -------------------------------------------------------------------------------- 1 | html { 2 | color: #000; 3 | background: #fff; 4 | } 5 | 6 | body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td { 7 | margin: 0; 8 | padding: 0; 9 | } 10 | 11 | table { 12 | border-collapse: collapse; 13 | border-spacing: 0; 14 | } 15 | 16 | fieldset, img { 17 | border: 0; 18 | } 19 | 20 | address, caption, cite, code, dfn, em, strong, th, var { 21 | font-style: normal; 22 | font-weight: normal; 23 | } 24 | 25 | li { 26 | list-style: none; 27 | } 28 | 29 | caption, th { 30 | text-align: left; 31 | } 32 | 33 | h1, h2, h3, h4, h5, h6 { 34 | font-size: 100%; 35 | font-weight: normal; 36 | } 37 | 38 | q:before, q:after { 39 | content: ''; 40 | } 41 | 42 | abbr, acronym { 43 | border: 0; 44 | font-variant: normal; 45 | } 46 | 47 | sup { 48 | vertical-align: text-top; 49 | } 50 | 51 | sub { 52 | vertical-align: text-bottom; 53 | } 54 | 55 | input, textarea, select { 56 | font-family: inherit; 57 | font-size: inherit; 58 | font-weight: inherit; 59 | } 60 | 61 | legend { 62 | color: #000; 63 | } 64 | 65 | body { 66 | font: 13px / 1.231 arial, helvetica, clean, sans-serif; 67 | *font-size: small; 68 | *font: x-small; 69 | } 70 | 71 | table { 72 | font-size: inherit; 73 | font: 100%; 74 | } 75 | 76 | pre, code, kbd, samp, tt { 77 | font-family: monospace; 78 | *font-size: 108%; 79 | line-height: 100%; 80 | } 81 | 82 | body { 83 | text-align: center; 84 | } 85 | 86 | #ft { 87 | clear: both; 88 | } 89 | 90 | #doc, #doc2, #doc3, #doc4, .yui-t1, .yui-t2, .yui-t3, .yui-t4, .yui-t5, .yui-t6, .yui-t7 { 91 | margin: auto; 92 | text-align: left; 93 | width: 57.69em; 94 | *width: 56.301em; 95 | min-width: 750px; 96 | } 97 | 98 | #doc2 { 99 | width: 73.074em; 100 | *width: 71.313em; 101 | } 102 | 103 | #doc3 { 104 | margin: auto 10px; 105 | width: auto; 106 | } 107 | 108 | #doc4 { 109 | width: 74.923em; 110 | *width: 73.117em; 111 | } 112 | 113 | .yui-b { 114 | position: relative; 115 | } 116 | 117 | .yui-b { 118 | _position: static; 119 | } 120 | 121 | #yui-main .yui-b { 122 | position: static; 123 | } 124 | 125 | #yui-main { 126 | width: 100%; 127 | } 128 | 129 | .yui-t1 #yui-main, .yui-t2 #yui-main, .yui-t3 #yui-main { 130 | float: right; 131 | margin-left: -25em; 132 | } 133 | 134 | .yui-t4 #yui-main, .yui-t5 #yui-main, .yui-t6 #yui-main { 135 | float: left; 136 | margin-right: -25em; 137 | } 138 | 139 | .yui-t1 .yui-b { 140 | float: left; 141 | width: 12.3207em; 142 | *width: 12.0106em; 143 | } 144 | 145 | .yui-t1 #yui-main .yui-b { 146 | margin-left: 13.3207em; 147 | *margin-left: 13.0106em; 148 | } 149 | 150 | .yui-t2 .yui-b { 151 | float: left; 152 | width: 13.8456em; 153 | *width: 13.512em; 154 | } 155 | 156 | .yui-t2 #yui-main .yui-b { 157 | margin-left: 14.8456em; 158 | *margin-left: 14.512em; 159 | } 160 | 161 | .yui-t3 .yui-b { 162 | float: left; 163 | width: 23.0759em; 164 | *width: 22.52em; 165 | } 166 | 167 | .yui-t3 #yui-main .yui-b { 168 | margin-left: 24.0759em; 169 | *margin-left: 23.52em; 170 | } 171 | 172 | .yui-t4 .yui-b { 173 | float: right; 174 | width: 13.8456em; 175 | *width: 13.512em; 176 | } 177 | 178 | .yui-t4 #yui-main .yui-b { 179 | margin-right: 14.8456em; 180 | *margin-right: 14.512em; 181 | } 182 | 183 | .yui-t5 .yui-b { 184 | float: right; 185 | width: 18.4608em; 186 | *width: 18.016em; 187 | } 188 | 189 | .yui-t5 #yui-main .yui-b { 190 | margin-right: 19.4608em; 191 | *margin-right: 19.016em; 192 | } 193 | 194 | .yui-t6 .yui-b { 195 | float: right; 196 | width: 23.0759em; 197 | *width: 22.52em; 198 | } 199 | 200 | .yui-t6 #yui-main .yui-b { 201 | margin-right: 24.0759em; 202 | *margin-right: 23.52em; 203 | } 204 | 205 | .yui-t7 #yui-main .yui-b { 206 | display: block; 207 | margin: 0 0 1em 0; 208 | } 209 | 210 | #yui-main .yui-b { 211 | float: none; 212 | width: auto; 213 | } 214 | 215 | .yui-g .yui-gb .yui-u, .yui-gb .yui-g, .yui-gb .yui-gb, .yui-gb .yui-gc, .yui-gb .yui-gd, .yui-gb .yui-ge, .yui-gb .yui-gf, .yui-gb .yui-u, .yui-gc .yui-u, .yui-gc .yui-g, .yui-gd .yui-u { 216 | float: left; 217 | margin-left: 2%; 218 | width: 32%; 219 | } 220 | 221 | .yui-gb .yui-gb .yui-u, .yui-gb .yui-gc .yui-u { 222 | *margin-left: 1.8%; 223 | _margin-left: 4%; 224 | } 225 | 226 | .yui-g .yui-gb .yui-u { 227 | _margin-left: .8%; 228 | } 229 | 230 | .yui-gb .yui-u { 231 | float: right; 232 | } 233 | 234 | .yui-gb div.first { 235 | margin-left: 0; 236 | float: left; 237 | } 238 | 239 | .yui-g .yui-gb div.first, .yui-gb .yui-gb div.first { 240 | *margin-right: 0; 241 | *width: 32%; 242 | _width: 31.7%; 243 | } 244 | 245 | .yui-gb .yui-gc div.first, .yui-gb .yui-gd div.first { 246 | *margin-right: 0; 247 | } 248 | 249 | .yui-gb .yui-gd .yui-u { 250 | *width: 66%; 251 | _width: 61.2%; 252 | } 253 | 254 | .yui-gb .yui-gd div.first { 255 | *width: 31%; 256 | _width: 29.5%; 257 | } 258 | 259 | .yui-g .yui-gc .yui-u, .yui-gb .yui-gc .yui-u { 260 | width: 32%; 261 | _float: right; 262 | margin-right: 0; 263 | _margin-left: 0; 264 | } 265 | 266 | .yui-gb .yui-gc div.first { 267 | width: 66%; 268 | *float: left; 269 | *margin-left: 0; 270 | } 271 | 272 | .yui-gb .yui-ge .yui-u, .yui-gb .yui-gf .yui-u { 273 | margin: 0; 274 | } 275 | 276 | .yui-g .yui-u, .yui-g .yui-g, .yui-g .yui-gb, .yui-g .yui-gc, .yui-g .yui-gd, .yui-g .yui-ge, .yui-g .yui-gf, .yui-gc .yui-u, .yui-gd .yui-g, .yui-g .yui-gc .yui-u, .yui-ge .yui-u, .yui-ge .yui-g, .yui-gf .yui-g, .yui-gf .yui-u { 277 | float: right; 278 | } 279 | 280 | .yui-g .yui-gc div.first, .yui-g .yui-ge div.first, .yui-g div.first, .yui-gc div.first, .yui-gc div.first div.first, .yui-gd div.first, .yui-ge div.first, .yui-gf div.first { 281 | float: left; 282 | } 283 | 284 | .yui-g .yui-g .yui-u, .yui-gb .yui-g .yui-u, .yui-gc .yui-g .yui-u, .yui-gd .yui-g .yui-u, .yui-ge .yui-g .yui-u, .yui-gf .yui-g .yui-u { 285 | width: 49%; 286 | *width: 48.1%; 287 | *margin-left: 0; 288 | } 289 | 290 | .yui-g .yui-g div.first { 291 | *margin: 0; 292 | } 293 | 294 | .yui-gb .yui-g div.first { 295 | *margin-right: 4%; 296 | _margin-right: 1.3%; 297 | } 298 | 299 | .yui-gb .yui-gb .yui-u { 300 | _margin-left: .7%; 301 | } 302 | 303 | .yui-gb .yui-g div.first, .yui-gb .yui-gb div.first { 304 | *margin-left: 0; 305 | } 306 | 307 | .yui-gc .yui-g .yui-u, .yui-gd .yui-g .yui-u { 308 | *width: 48.1%; 309 | *margin-left: 0; 310 | } 311 | 312 | .yui-g .yui-u, .yui-g .yui-g, .yui-g .yui-gb, .yui-g .yui-gc, .yui-g .yui-gd, .yui-g .yui-ge, .yui-g .yui-gf { 313 | width: 49.1%; 314 | } 315 | 316 | .yui-g .yui-gb div.first, .yui-gb div.first, .yui-gc div.first, .yui-gd div.first { 317 | margin-left: 0; 318 | } 319 | 320 | .yui-g .yui-gc div.first, .yui-gc div.first, .yui-gd .yui-g, .yui-gd .yui-u { 321 | width: 66%; 322 | } 323 | 324 | .yui-gd div.first, .yui-gb .yui-gd div.first { 325 | width: 32%; 326 | } 327 | 328 | .yui-g .yui-gd div.first { 329 | _width: 29.9%; 330 | } 331 | 332 | .yui-ge .yui-u, .yui-ge .yui-g, .yui-gf div.first { 333 | width: 24%; 334 | } 335 | 336 | .yui-gb .yui-ge div.yui-u, .yui-gb .yui-gf div.yui-u { 337 | float: right; 338 | } 339 | 340 | .yui-gb .yui-ge div.first, .yui-gb .yui-gf div.first { 341 | float: left; 342 | } 343 | 344 | .yui-ge div.first, .yui-gf .yui-g, .yui-gf .yui-u { 345 | width: 74.2%; 346 | } 347 | 348 | .yui-gb .yui-ge .yui-u, .yui-gb .yui-gf div.first { 349 | *width: 24%; 350 | _width: 20%; 351 | } 352 | 353 | .yui-gb .yui-ge div.first, .yui-gb .yui-gf .yui-u { 354 | *width: 73.5%; 355 | _width: 65.5%; 356 | } 357 | 358 | #bd:after, .yui-g:after, .yui-gb:after, .yui-gc:after, .yui-gd:after, .yui-ge:after, .yui-gf:after { 359 | content: "."; 360 | display: block; 361 | height: 0; 362 | clear: both; 363 | visibility: hidden; 364 | } 365 | 366 | #bd, .yui-g, .yui-gb, .yui-gc, .yui-gd, .yui-ge, .yui-gf { 367 | zoom: 1; 368 | } 369 | 370 | .yui-gb .yui-u { 371 | float: left; 372 | } 373 | 374 | .yuimenubar { 375 | visibility: visible; 376 | position: static; 377 | } 378 | 379 | .yuimenu .yuimenu, .yuimenubar .yuimenu { 380 | visibility: hidden; 381 | position: absolute; 382 | top: -10000px; 383 | left: -10000px; 384 | } 385 | 386 | .yuimenubar li, .yuimenu li { 387 | list-style-type: none; 388 | } 389 | 390 | .yuimenubar ul, .yuimenu ul, .yuimenubar li, .yuimenu li, .yuimenu h6, .yuimenubar h6 { 391 | margin: 0; 392 | padding: 0; 393 | } 394 | 395 | .yuimenuitemlabel, .yuimenubaritemlabel { 396 | text-align: left; 397 | white-space: nowrap; 398 | } 399 | 400 | .yuimenubar ul { 401 | *zoom: 1; 402 | } 403 | 404 | .yuimenubar .yuimenu ul { 405 | *zoom: normal; 406 | } 407 | 408 | .yuimenubar > .bd > ul:after { 409 | content: "."; 410 | display: block; 411 | clear: both; 412 | visibility: hidden; 413 | height: 0; 414 | line-height: 0; 415 | } 416 | 417 | .yuimenubaritem { 418 | float: left; 419 | } 420 | 421 | .yuimenubaritemlabel, .yuimenuitemlabel { 422 | display: block; 423 | } 424 | 425 | .yuimenuitemlabel .helptext { 426 | font-style: normal; 427 | display: block; 428 | margin: -1em 0 0 10em; 429 | } 430 | 431 | .yui-menu-shadow { 432 | position: absolute; 433 | visibility: hidden; 434 | z-index: -1; 435 | } 436 | 437 | .yui-skin-sam .yui-menu-shadow-visible { 438 | top: 2px; 439 | right: -3px; 440 | left: -3px; 441 | bottom: -3px; 442 | visibility: visible; 443 | } 444 | 445 | .hide-scrollbars * { 446 | overflow: hidden; 447 | } 448 | 449 | .hide-scrollbars select { 450 | display: none; 451 | } 452 | 453 | .yuimenu.show-scrollbars, .yuimenubar.show-scrollbars { 454 | overflow: visible; 455 | } 456 | 457 | .yuimenu.hide-scrollbars .yui-menu-shadow, .yuimenubar.hide-scrollbars .yui-menu-shadow { 458 | overflow: hidden; 459 | } 460 | 461 | .yuimenu.show-scrollbars .yui-menu-shadow, .yuimenubar.show-scrollbars .yui-menu-shadow { 462 | overflow: auto; 463 | } 464 | 465 | .yui-skin-sam .yuimenubar { 466 | font-size: 93%; 467 | line-height: 2; 468 | *line-height: 1.9; 469 | border: solid 1px #808080; 470 | background: url(../image/fp/yui/sprite.png) repeat-x 0 0; 471 | } 472 | 473 | .yui-skin-sam .yuimenubarnav .yuimenubaritem { 474 | border-right: solid 1px #ccc; 475 | } 476 | 477 | .yui-skin-sam .yuimenubaritemlabel { 478 | padding: 0 10px; 479 | color: #000; 480 | text-decoration: none; 481 | cursor: default; 482 | border-style: solid; 483 | border-color: #808080; 484 | border-width: 1px 0; 485 | *position: relative; 486 | margin: -1px 0; 487 | } 488 | 489 | .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel { 490 | padding-right: 20px; 491 | *display: inline-block; 492 | } 493 | 494 | .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu { 495 | background: url(../image/fp/yui/menubaritem_submenuindicator.png) right center no-repeat; 496 | } 497 | 498 | .yui-skin-sam .yuimenubaritem-selected { 499 | background: url(../image/fp/yui/sprite.png) repeat-x 0 -1700px; 500 | } 501 | 502 | .yui-skin-sam .yuimenubaritemlabel-selected { 503 | border-color: #7d98b8; 504 | } 505 | 506 | .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-selected { 507 | border-left-width: 1px; 508 | margin-left: -1px; 509 | *left: -1px; 510 | } 511 | 512 | .yui-skin-sam .yuimenubaritemlabel-disabled { 513 | cursor: default; 514 | color: #a6a6a6; 515 | } 516 | 517 | .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu-disabled { 518 | background-image: url(../image/fp/yui/menubaritem_submenuindicator_disabled.png); 519 | } 520 | 521 | .yui-skin-sam .yuimenu { 522 | font-size: 93%; 523 | line-height: 1.5; 524 | *line-height: 1.45; 525 | } 526 | 527 | .yui-skin-sam .yuimenubar .yuimenu, .yui-skin-sam .yuimenu .yuimenu { 528 | font-size: 100%; 529 | } 530 | 531 | .yui-skin-sam .yuimenu .bd { 532 | border: solid 1px #808080; 533 | background-color: #fff; 534 | } 535 | 536 | .yui-skin-sam .yuimenu ul { 537 | padding: 3px 0; 538 | border-width: 1px 0 0 0; 539 | border-color: #ccc; 540 | border-style: solid; 541 | } 542 | 543 | .yui-skin-sam .yuimenu ul.first-of-type { 544 | border-width: 0; 545 | } 546 | 547 | .yui-skin-sam .yuimenu h6 { 548 | font-weight: bold; 549 | border-style: solid; 550 | border-color: #ccc; 551 | border-width: 1px 0 0 0; 552 | color: #a4a4a4; 553 | padding: 3px 10px 0 10px; 554 | } 555 | 556 | .yui-skin-sam .yuimenu ul.hastitle, .yui-skin-sam .yuimenu h6.first-of-type { 557 | border-width: 0; 558 | } 559 | 560 | .yui-skin-sam .yuimenu .yui-menu-body-scrolled { 561 | border-color: #ccc #808080; 562 | overflow: hidden; 563 | } 564 | 565 | .yui-skin-sam .yuimenu .topscrollbar, .yui-skin-sam .yuimenu .bottomscrollbar { 566 | height: 16px; 567 | border: solid 1px #808080; 568 | background: #fff url(.../image/fp/yui/sprite.png) no-repeat 0 0; 569 | } 570 | 571 | .yui-skin-sam .yuimenu .topscrollbar { 572 | border-bottom-width: 0; 573 | background-position: center -950px; 574 | } 575 | 576 | .yui-skin-sam .yuimenu .topscrollbar_disabled { 577 | background-position: center -975px; 578 | } 579 | 580 | .yui-skin-sam .yuimenu .bottomscrollbar { 581 | border-top-width: 0; 582 | background-position: center -850px; 583 | } 584 | 585 | .yui-skin-sam .yuimenu .bottomscrollbar_disabled { 586 | background-position: center -875px; 587 | } 588 | 589 | .yui-skin-sam .yuimenuitem { 590 | _border-bottom: solid 1px #fff; 591 | } 592 | 593 | .yui-skin-sam .yuimenuitemlabel { 594 | padding: 0 20px; 595 | color: #000; 596 | text-decoration: none; 597 | cursor: default; 598 | } 599 | 600 | .yui-skin-sam .yuimenuitemlabel .helptext { 601 | margin-top: -1.5em; 602 | *margin-top: -1.45em; 603 | } 604 | 605 | .yui-skin-sam .yuimenuitem-hassubmenu { 606 | background-image: url(../image/fp/yui/menuitem_submenuindicator.png); 607 | background-position: right center; 608 | background-repeat: no-repeat; 609 | } 610 | 611 | .yui-skin-sam .yuimenuitem-checked { 612 | background-image: url(../image/fp/yui/menuitem_checkbox.png); 613 | background-position: left center; 614 | background-repeat: no-repeat; 615 | } 616 | 617 | .yui-skin-sam .yui-menu-shadow-visible { 618 | background-color: #000; 619 | opacity: 0.12; 620 | *filter: alpha(opacity=12); 621 | } 622 | 623 | .yui-skin-sam .yuimenuitem-selected { 624 | background-color: #b3d4ff; 625 | } 626 | 627 | .yui-skin-sam .yuimenuitemlabel-disabled { 628 | cursor: default; 629 | color: #a6a6a6; 630 | } 631 | 632 | .yui-skin-sam .yuimenuitem-hassubmenu-disabled { 633 | background-image: url(../image/fp/yui/menuitem_submenuindicator_disabled.png); 634 | } 635 | 636 | .yui-skin-sam .yuimenuitem-checked-disabled { 637 | background-image: url(../image/fp/yui/menuitem_checkbox_disabled.png); 638 | } 639 | 640 | .yui-overlay, .yui-panel-container { 641 | visibility: hidden; 642 | position: absolute; 643 | z-index: 2; 644 | } 645 | 646 | .yui-tt { 647 | visibility: hidden; 648 | position: absolute; 649 | color: #333; 650 | background-color: #fdffb4; 651 | font-family: arial, helvetica, verdana, sans-serif; 652 | padding: 2px; 653 | border: 1px solid #fcc90d; 654 | font: 100% sans-serif; 655 | width: auto; 656 | } 657 | 658 | .yui-tt-shadow { 659 | display: none; 660 | } 661 | 662 | * html body.masked select { 663 | visibility: hidden; 664 | } 665 | 666 | * html div.yui-panel-container select { 667 | visibility: inherit; 668 | } 669 | 670 | * html div.drag select { 671 | visibility: hidden; 672 | } 673 | 674 | * html div.hide-select select { 675 | visibility: hidden; 676 | } 677 | 678 | .mask { 679 | z-index: 1; 680 | display: none; 681 | position: absolute; 682 | top: 0; 683 | left: 0; 684 | -moz-opacity: 0.5; 685 | opacity: 0.5; 686 | filter: alpha(opacity=50); 687 | background-color: #ccc; 688 | } 689 | 690 | .hide-scrollbars, .hide-scrollbars * { 691 | overflow: hidden; 692 | } 693 | 694 | .hide-scrollbars select { 695 | display: none; 696 | } 697 | 698 | .show-scrollbars { 699 | overflow: auto; 700 | } 701 | 702 | .yui-panel-container.show-scrollbars { 703 | overflow: visible; 704 | } 705 | 706 | .yui-panel-container.show-scrollbars .underlay { 707 | overflow: auto; 708 | } 709 | 710 | .yui-panel-container .underlay { 711 | position: absolute; 712 | top: 0; 713 | right: 0; 714 | bottom: 0; 715 | left: 0; 716 | } 717 | 718 | .yui-panel-container.matte { 719 | padding: 3px; 720 | background-color: #fff; 721 | } 722 | 723 | .yui-panel-container.shadow .underlay { 724 | top: 3px; 725 | bottom: -3px; 726 | right: -3px; 727 | left: 3px; 728 | background-color: #000; 729 | opacity: 0.12; 730 | filter: alpha(opacity=12); 731 | } 732 | 733 | .yui-panel-container.shadow .underlay.yui-force-redraw { 734 | padding-bottom: 1px; 735 | } 736 | 737 | .yui-effect-fade .underlay { 738 | display: none; 739 | } 740 | 741 | .yui-panel { 742 | visibility: hidden; 743 | border-collapse: separate; 744 | position: relative; 745 | left: 0; 746 | top: 0; 747 | font: 1em Arial; 748 | background-color: #fff; 749 | border: 1px solid #000; 750 | z-index: 1; 751 | overflow: hidden; 752 | } 753 | 754 | .yui-panel .hd { 755 | background-color: #3d77cb; 756 | color: #fff; 757 | font-size: 100%; 758 | line-height: 100%; 759 | border: 1px solid #fff; 760 | border-bottom: 1px solid #000; 761 | font-weight: bold; 762 | padding: 4px; 763 | white-space: nowrap; 764 | } 765 | 766 | .yui-panel .bd { 767 | overflow: hidden; 768 | padding: 4px; 769 | } 770 | 771 | .yui-panel .bd p { 772 | margin: 0 0 1em; 773 | } 774 | 775 | .yui-panel .container-close { 776 | position: absolute; 777 | top: 5px; 778 | right: 4px; 779 | z-index: 6; 780 | height: 12px; 781 | width: 12px; 782 | margin: 0; 783 | padding: 0; 784 | background: url(../image/fp/yui/close12_1.gif) no-repeat; 785 | cursor: pointer; 786 | visibility: inherit; 787 | } 788 | 789 | .yui-panel .ft { 790 | padding: 4px; 791 | overflow: hidden; 792 | } 793 | 794 | .yui-simple-dialog .bd .yui-icon { 795 | background-repeat: no-repeat; 796 | width: 16px; 797 | height: 16px; 798 | margin-right: 10px; 799 | float: left; 800 | } 801 | 802 | .yui-simple-dialog .bd span.blckicon { 803 | background: url(../image/fp/yui/blck16_1.gif) no-repeat; 804 | } 805 | 806 | .yui-simple-dialog .bd span.alrticon { 807 | background: url(../image/fp/yui/alrt16_1.gif) no-repeat; 808 | } 809 | 810 | .yui-simple-dialog .bd span.hlpicon { 811 | background: url(../image/fp/yui/hlp16_1.gif) no-repeat; 812 | } 813 | 814 | .yui-simple-dialog .bd span.infoicon { 815 | background: url(../image/fp/yui/info16_1.gif) no-repeat; 816 | } 817 | 818 | .yui-simple-dialog .bd span.warnicon { 819 | background: url(../image/fp/yui/warn16_1.gif) no-repeat; 820 | } 821 | 822 | .yui-simple-dialog .bd span.tipicon { 823 | background: url(../image/fp/yui/tip16_1.gif) no-repeat; 824 | } 825 | 826 | .yui-dialog .ft, .yui-simple-dialog .ft { 827 | padding-bottom: 5px; 828 | padding-right: 5px; 829 | text-align: right; 830 | } 831 | 832 | .yui-dialog form, .yui-simple-dialog form { 833 | margin: 0; 834 | } 835 | 836 | .button-group button { 837 | font: 100 76% verdana; 838 | text-decoration: none; 839 | background-color: #e4e4e4; 840 | color: #333; 841 | cursor: pointer; 842 | vertical-align: middle; 843 | border: 2px solid #797979; 844 | border-top-color: #fff; 845 | border-left-color: #fff; 846 | margin: 2px; 847 | padding: 2px; 848 | } 849 | 850 | .button-group button.default { 851 | font-weight: bold; 852 | } 853 | 854 | .button-group button:focus { 855 | outline: 0; 856 | } 857 | 858 | .button-group button:active { 859 | border: 2px solid #e4e4e4; 860 | background-color: #bbb; 861 | border-top-color: #333; 862 | border-left-color: #333; 863 | } -------------------------------------------------------------------------------- /error: -------------------------------------------------------------------------------- 1 | An error occurred with the script, please check the console. -------------------------------------------------------------------------------- /html/form_thread.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 19 | 20 | 21 | 22 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 59 | 60 | 61 | 62 | 65 | 66 | 67 | 74 | 75 | 76 | 77 | 78 | 81 | 82 | 83 |
Name 11 | 12 |
Options 17 | 18 |
Subject 23 | 24 | 25 |
Comment 30 | 31 |
Verification 36 | 38 | 41 |
42 | 56 |
4chan Pass users can bypass this verification. [Learn More] [Login]
58 |
File 63 | 64 |
68 |
    69 |
  • Please read the Rules and FAQ before 70 | posting.
  • 71 |
  • You may highlight syntax and preserve whitespace by using [code] tags.
  • 72 |
73 |
79 |
80 |
84 | 85 | 86 | 87 | 90 | 91 | 92 | 93 | 94 | 95 | 97 | 98 | 99 | 100 | 102 | 103 | 104 | 105 | 107 | 108 | 109 | 110 | 111 | 113 | 114 | 115 |
88 |
89 |
05/04/17New trial board added: /bant/ - International/Random 96 |
10/04/16New board for 4chan Pass users: /vip/ - Very Important Posts 101 |
06/20/16New 4chan Banner Contest with a chance to win a 4chan Pass! See the contest page for 106 | details.
[Hide] [Show All] 112 |
-------------------------------------------------------------------------------- /html/global_message.html: -------------------------------------------------------------------------------- 1 | No global message -------------------------------------------------------------------------------- /html/post.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 12 |
13 |
File: RMS.png (293 14 | KB, 450x399)
293 KB
293 KB PNG
16 |
17 | 32 |
The /g/ Wiki: 33 |
http://wiki.installgentoo.com/ 34 |
35 |
/g/ is for the discussion of technology and related topics. 36 |
/g/ is NOT your personal tech support team or personal consumer 37 | review site. 38 |
39 |
For tech support/issues with computers, use /wsr/ - Worksafe Requests or 40 | one of the following: 41 |
https://startpage.com/ or https://duckduckgo.com (i.e., 42 | fucking google it) 43 |
https://stackexchange.com/ 44 |
http://www.logicalincrements.com/ 45 |
46 |
You can also search the catalog for a specific term by using: 47 |
https://boards.4chan.org/g/searchwordor 48 | by clicking on [Search] 49 |
50 |
Always check the catalog before creating a thread: 51 |
52 |
Comment too long. Click here to view the full text. 53 |
54 |
55 | 57 |
-------------------------------------------------------------------------------- /javascripts/bans.js: -------------------------------------------------------------------------------- 1 | var Parser = {} 2 | 3 | Parser.init = function() { 4 | var staticPath = '//s.4cdn.org/image/'; 5 | 6 | var tail = window.devicePixelRatio >= 2 ? '@2x.gif' : '.gif'; 7 | 8 | this.icons = { 9 | admin: staticPath + 'adminicon' + tail, 10 | mod: staticPath + 'modicon' + tail, 11 | dev: staticPath + 'developericon' + tail, 12 | del: staticPath + 'filedeleted-res' + tail 13 | }; 14 | }; 15 | 16 | function buildHTMLFromJSON(data) { 17 | var 18 | container = document.createElement('div'), 19 | isOP = false, 20 | 21 | userId, 22 | fileDims = '', 23 | imgSrc = '', 24 | fileBuildStart = '', 25 | fileBuildEnd = '', 26 | fileInfo = '', 27 | fileHtml = '', 28 | fileThumb, 29 | fileSize = '', 30 | fileClass = '', 31 | shortFile = '', 32 | longFile = '', 33 | tripcode = '', 34 | capcodeStart = '', 35 | capcodeClass = '', 36 | capcode = '', 37 | flag, 38 | highlight = '', 39 | emailStart = '', 40 | emailEnd = '', 41 | name, 42 | subject, 43 | noLink, 44 | quoteLink, 45 | noFilename, 46 | maxSize = 150, 47 | ratio, imgWidth, imgHeight, 48 | 49 | imgDir = '//i.4cdn.org/' + data.board + '/src'; 50 | 51 | noLink = 'res/' + data.resto + '#p' + data.no; 52 | quoteLink = 'res/' + data.resto + '#q' + data.no; 53 | 54 | if (!data.capcode && data.id) { 55 | userId = ' (ID: ' 57 | + data.id + ') '; 58 | } 59 | else { 60 | userId = ''; 61 | } 62 | 63 | switch (data.capcode) { 64 | case 'admin_highlight': 65 | highlight = ' highlightPost'; 66 | case 'admin': 67 | capcodeStart = ' ## Admin'; 69 | capcodeClass = ' capcodeAdmin'; 70 | 71 | capcode = ' '; 74 | break; 75 | case 'mod': 76 | capcodeStart = ' ## Mod'; 78 | capcodeClass = ' capcodeMod'; 79 | 80 | capcode = ' '; 83 | break; 84 | case 'developer': 85 | capcodeStart = ' ## Developer'; 87 | capcodeClass = ' capcodeDeveloper'; 88 | 89 | capcode = ' '; 92 | break; 93 | } 94 | 95 | if (data.email) { 96 | emailStart = ''; 97 | emailEnd = ''; 98 | } 99 | 100 | if (data.country) { 101 | flag = ' '
104 |       + data.country + ''; 105 | } 106 | else { 107 | flag = ''; 108 | } 109 | 110 | if (data.ext) { 111 | shortFile = longFile = data.filename + data.ext; 112 | if (data.filename.length > 30) { 113 | shortFile = data.filename.slice(0, 25) + '(...)' + data.ext; 114 | } 115 | 116 | if (!data.tn_w && !data.tn_h && data.ext == '.gif') { 117 | data.tn_w = data.w; 118 | data.tn_h = data.h; 119 | } 120 | if (data.fsize >= 1048576) { 121 | fileSize = ((0 | (data.fsize / 1048576 * 100 + 0.5)) / 100) + ' M'; 122 | } 123 | else if (data.fsize > 1024) { 124 | fileSize = (0 | (data.fsize / 1024 + 0.5)) + ' K'; 125 | } 126 | else { 127 | fileSize = data.fsize + ' '; 128 | } 129 | 130 | fileThumb = '//i.4cdn.org/bans/thumb/' + data.board + '/' + data.thumb + 's.jpg'; 131 | 132 | imgWidth = data.tn_w; 133 | imgHeight = data.tn_h; 134 | 135 | if (imgWidth > maxSize) { 136 | ratio = maxSize / imgWidth; 137 | imgWidth = maxSize; 138 | imgHeight = imgHeight * ratio; 139 | } 140 | if (imgHeight > maxSize) { 141 | ratio = maxSize / imgHeight; 142 | imgWidth = imgWidth * ratio; 143 | imgHeight = maxSize; 144 | } 145 | 146 | imgSrc = '' 147 | + '' + fileSize + 'B'; 151 | 152 | fileDims = data.ext == '.pdf' ? 'PDF' : data.w + 'x' + data.h; 153 | fileInfo = 'File: ' + data.tim + data.ext + '-(' + fileSize 156 | + 'B, ' + fileDims 157 | + (noFilename ? '' : (', ' 158 | + shortFile + '')) + ')'; 159 | 160 | fileBuildStart = fileInfo ? '
' : ''; 161 | fileBuildEnd = fileInfo ? '
' : ''; 162 | 163 | fileHtml = '
' 164 | + fileBuildStart + fileInfo + fileBuildEnd + imgSrc + '
'; 165 | } 166 | else if (data.filedeleted) { 167 | fileHtml = '
File deleted.
'; 169 | } 170 | 171 | if (data.trip) { 172 | tripcode = ' ' + data.trip + ''; 173 | } 174 | 175 | name = data.name || ''; 176 | 177 | subject = data.sub || ''; 178 | 179 | container.id = 'p' + data.no; 180 | container.className = 'post reply' + highlight + (data.nsfw ? ' nws' : ' ws'); 181 | container.innerHTML = 182 | '
' + 183 | ' ' + 184 | '' + subject + ' ' + 185 | '' + emailStart + 186 | '' + name + '' + 187 | tripcode + capcodeStart + emailEnd + capcode + userId + flag + 188 | ' ' + 189 | '' + data.now + ' ' + 190 | '' + 191 | 'No.XXX' + 192 | '' + 193 | '
' + fileHtml + 194 | '
' 195 | + (data.com || '') + '
'; 196 | 197 | return container; 198 | } 199 | 200 | function showPreview(e) { 201 | var rect, postHeight, doc, docWidth, style, pos, top, scrollTop, link, post, bid; 202 | 203 | link = e.target; 204 | 205 | if (!(bid = e.target.getAttribute('data-pid'))) { 206 | return; 207 | } 208 | 209 | post = buildHTMLFromJSON(window.postPreviews[bid]); 210 | 211 | post.id = 'quote-preview'; 212 | 213 | rect = link.getBoundingClientRect(); 214 | doc = document.documentElement; 215 | docWidth = doc.offsetWidth; 216 | style = post.style; 217 | 218 | document.body.appendChild(post); 219 | 220 | if ((docWidth - rect.right) < (0 | (docWidth * 0.3))) { 221 | pos = docWidth - rect.left; 222 | style.right = pos + 5 + 'px'; 223 | } 224 | else { 225 | pos = rect.left + rect.width; 226 | style.left = pos + 5 + 'px'; 227 | } 228 | 229 | top = rect.top + link.offsetHeight + window.pageYOffset 230 | - post.offsetHeight / 2 - rect.height / 2; 231 | 232 | postHeight = post.getBoundingClientRect().height; 233 | 234 | if (doc.scrollTop != document.body.scrollTop) { 235 | scrollTop = doc.scrollTop + document.body.scrollTop; 236 | } else { 237 | scrollTop = document.body.scrollTop; 238 | } 239 | 240 | if (top < scrollTop) { 241 | style.top = scrollTop + 'px'; 242 | } 243 | else if (top + postHeight > scrollTop + doc.clientHeight) { 244 | style.top = scrollTop + doc.clientHeight - postHeight + 'px'; 245 | } 246 | else { 247 | style.top = top + 'px'; 248 | } 249 | } 250 | 251 | function removePreview() { 252 | if (cnt = document.getElementById('quote-preview')) { 253 | document.body.removeChild(cnt); 254 | } 255 | } 256 | 257 | function ago(timestamp) { 258 | var delta, count, head, tail, ago; 259 | 260 | delta = Date.now() / 1000 - timestamp; 261 | 262 | if (delta < 1) { 263 | return 'moments ago'; 264 | } 265 | 266 | if (delta < 60) { 267 | return (0 | delta) + ' seconds ago'; 268 | } 269 | 270 | if (delta < 3600) { 271 | count = 0 | (delta / 60); 272 | 273 | if (count > 1) { 274 | return count + ' minutes ago'; 275 | } 276 | else { 277 | return 'one minute ago'; 278 | } 279 | } 280 | 281 | if (delta < 86400) { 282 | count = 0 | (delta / 3600); 283 | 284 | if (count > 1) { 285 | head = count + ' hours'; 286 | } 287 | else { 288 | head = 'one hour'; 289 | } 290 | 291 | tail = 0 | (delta / 60 - count * 60); 292 | 293 | if (tail > 1) { 294 | head += ' and ' + tail + ' minutes'; 295 | } 296 | 297 | return head + ' ago'; 298 | } 299 | 300 | count = 0 | (delta / 86400); 301 | 302 | if (count > 1) { 303 | head = count + ' days'; 304 | } 305 | else { 306 | head = 'one day'; 307 | } 308 | 309 | tail = 0 | (delta / 3600 - count * 24); 310 | 311 | if (tail > 1) { 312 | head += ' and ' + tail + ' hours'; 313 | } 314 | 315 | return head + ' ago'; 316 | }; 317 | 318 | function initTimestamps() { 319 | var i, n, nodes; 320 | 321 | nodes = document.getElementsByClassName('time'); 322 | 323 | for (i = 0; n = nodes[i]; ++i) { 324 | n.textContent = ago(+n.getAttribute('data-utc')); 325 | } 326 | } 327 | 328 | function run() { 329 | Parser.init(); 330 | initTimestamps(); 331 | document.addEventListener('mouseover', showPreview, false); 332 | document.addEventListener('mouseout', removePreview, false); 333 | } 334 | 335 | document.addEventListener('DOMContentLoaded', run, false); 336 | 337 | if (/(^|\.)4channel\.org/.test(location.host)) { 338 | location = location.protocol + '//www.4chan.org/bans' 339 | } -------------------------------------------------------------------------------- /javascripts/frontpage.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $ = {}; 4 | 5 | $.id = function(id) { 6 | return document.getElementById(id); 7 | }; 8 | 9 | $.el = function(tag) { 10 | return document.createElement(tag); 11 | }; 12 | 13 | $.on = function(n, e, h) { 14 | n.addEventListener(e, h, false); 15 | }; 16 | 17 | $.off = function(n, e, h) { 18 | n.removeEventListener(e, h, false); 19 | }; 20 | 21 | $.setCookie = function(name, value) { 22 | var date = new Date(); 23 | 24 | date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000)); 25 | 26 | document.cookie = name + '=' + value 27 | + '; expires=' + date.toGMTString() 28 | + '; path=/'; 29 | }; 30 | 31 | $.removeCookie = function(name) { 32 | document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/'; 33 | }; 34 | 35 | $.getCookie = function(name) { 36 | var i, c, ca, key; 37 | 38 | key = name + '='; 39 | ca = document.cookie.split(';'); 40 | 41 | for (i = 0; c = ca[i]; ++i) { 42 | while (c.charAt(0) == ' ') { 43 | c = c.substring(1, c.length); 44 | } 45 | if (c.indexOf(key) === 0) { 46 | return decodeURIComponent(c.substring(key.length, c.length)); 47 | } 48 | } 49 | 50 | return null; 51 | }; 52 | 53 | /* *** */ 54 | 55 | var APP = { 56 | init: function() { 57 | this.xhr = null; 58 | 59 | this.clickCommands = { 60 | 'filter': APP.onFilterClick, 61 | 'opts': APP.onOptionsClick, 62 | 'set': APP.onMenuItemClick, 63 | 'x-wot': APP.onCloseWotClick, 64 | 'x-disc': APP.onCloseDiscClick, 65 | 'ok-disc': APP.onOkDiscClick 66 | }; 67 | 68 | this.is_4channel = window.location.host !== 'www.4chan.org'; 69 | 70 | $.on(document, 'DOMContentLoaded', APP.run); 71 | $.on(document, 'click', APP.onClick); 72 | }, 73 | 74 | run: function() { 75 | var el; 76 | 77 | $.off(document, 'DOMContentLoaded', APP.run); 78 | 79 | if (window == top && window.Opts['4chan_frames']) { 80 | window.location.href = '/frames'; 81 | return; 82 | } 83 | 84 | if (el = $.id('wot-cnt')) { 85 | el.innerHTML = APP.wotContent; 86 | } 87 | 88 | if (!$.getCookie('4chan_disclaimer')) { 89 | $.on(document, 'click', APP.onClickDisclaimer); 90 | } 91 | }, 92 | 93 | onClick: function(e) { 94 | var t, cmd; 95 | 96 | if (e.which != 1 || e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) { 97 | return; 98 | } 99 | 100 | if ((t = e.target) == document) { 101 | return; 102 | } 103 | 104 | if ((cmd = t.getAttribute('data-cmd')) && (cmd = APP.clickCommands[cmd])) { 105 | e.stopPropagation(); 106 | cmd(t, e); 107 | } 108 | }, 109 | 110 | onClickDisclaimer: function(e) { 111 | var t; 112 | 113 | if ((t = e.target) == document) { 114 | return; 115 | } 116 | 117 | if (t.className == 'c-thumb') { 118 | t = t.parentNode; 119 | } 120 | 121 | if (t.href && /boards\.(4chan|4channel)\.org/.test(t.href)) { 122 | e.preventDefault(); 123 | APP.showDisclaimer(t.getAttribute('href')); 124 | } 125 | }, 126 | 127 | showDisclaimer: function(url) { 128 | var el; 129 | 130 | el = $.el('div'); 131 | el.id = 'backdrop'; 132 | document.body.appendChild(el); 133 | 134 | el = $.el('div'); 135 | el.id = 'disclaimer-dialog'; 136 | el.innerHTML = '

Disclaimer

' 137 | + '
' 138 | + '
' + APP.discContent 139 | + ''; 143 | 144 | el.style.top = (window.pageYOffset + 50) + 'px'; 145 | 146 | document.body.appendChild(el); 147 | }, 148 | 149 | onCloseDiscClick: function() { 150 | var el; 151 | 152 | if (el = $.id('disclaimer-dialog')) { 153 | el.parentNode.removeChild(el); 154 | } 155 | 156 | if (el = $.id('backdrop')) { 157 | el.parentNode.removeChild(el); 158 | } 159 | }, 160 | 161 | onOkDiscClick: function(btn) { 162 | var url; 163 | 164 | url = btn.getAttribute('data-url'); 165 | 166 | if (url) { 167 | $.setCookie('4chan_disclaimer', 1); 168 | window.location = url; 169 | } 170 | }, 171 | 172 | showMenu: function(html, btn) { 173 | var el, aabb, aabb2; 174 | 175 | APP.closeMenu(); 176 | 177 | el = $.el('div'); 178 | el.id = 'fp-menu'; 179 | el.innerHTML = html; 180 | 181 | document.body.appendChild(el); 182 | 183 | aabb = btn.getBoundingClientRect(); 184 | aabb2 = el.getBoundingClientRect(); 185 | 186 | el.style.top = (aabb.top + window.pageYOffset + aabb.height + 5) + 'px'; 187 | 188 | el.style.left = (aabb.left - aabb2.width + aabb.width - 5) + 'px'; 189 | 190 | $.on(document, 'click', APP.closeMenu); 191 | }, 192 | 193 | closeMenu: function() { 194 | var el; 195 | 196 | $.off(document, 'click', APP.closeMenu); 197 | 198 | if (el = $.id('fp-menu')) { 199 | el.parentNode.removeChild(el); 200 | } 201 | }, 202 | 203 | onFilterClick: function(btn) { 204 | var html, opts; 205 | 206 | opts = window.Opts; 207 | 208 | if (APP.is_4channel) { 209 | html = '
151 | 152 | 153 | 154 | -------------------------------------------------------------------------------- /pages/contact.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Contact - 4chan 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 22 | 23 | 24 |
25 |
26 |
27 | 4chan 28 |
29 |
30 |
31 |
32 |
33 |

Contact

34 |
35 |
36 |

Thank you for your interest in contacting 4chan!

37 |

Before proceeding, please ensure that your question hasn't already been answered on the Frequently Asked Questions or Feedback pages. 38 | Additional pages you might find useful include: News, Rules, Advertise, and Press.

39 |

Due to the high volume of e-mail we receive, we may not be able to respond to your inquiry immediately.

40 |

Note: Unban requests are not accepted via e-mail. All unban requests will be ignored. Appeal your ban using the built-in form!

41 |
42 |

via e-mail:

43 | 50 |

via contact form:

51 |
    52 |
  • Ban Appeals: Use the Ban Appeal form. Unban requests are not accepted via e-mail.
  • 53 |
  • General Support & Bug Reports: Use our Feedback page.
  • 54 |
  • Vulnerability Disclosure: Visit our Security page.
  • 55 |
56 |

via Twitter:

57 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
79 |
80 | 83 |
84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /pages/feedback.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Feedback - 4chan 6 | 7 | 8 | 9 | 17 | 18 | 19 |
20 |

4chan Feedback

21 |
22 |
23 |
24 |

Submit Feedback

25 |
26 |
27 | 28 | 36 |
37 | 38 | 39 | 40 | 41 |
42 |
54 | 55 | 56 |
57 |
58 |
59 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /pages/flash.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Flash - 4chan 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 22 | 23 | 24 |
25 |
26 |
27 | 4chan 28 |
29 |
30 |
31 | 93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
111 |
112 | 115 |
116 | 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /pages/home.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 4chan 11 | 12 | 13 | 14 | 15 | 16 | 21 | 22 | 23 |
24 |
25 |
26 | 4chan 27 |
28 |
29 |
30 |
31 |
32 |
33 |

What is 4chan?

34 | 35 |
36 |
37 |
38 |
39 |
40 |
41 | 71 |
72 |
73 |
74 |

Boards

75 |
filter ▼
76 |
77 |
78 |
79 |

Japanese Culture

80 | 92 |

Video Games

93 | 103 |
104 |
105 |

Interests

106 | 123 |
124 |
125 |

Creative

126 | 142 |
143 |
144 |

Other

145 | 157 |

Misc.

(NSFW)

158 | 166 |
167 |
168 |

Adult

(NSFW)

169 | 184 |
185 |
186 |
187 |
188 |
189 | 128 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /pages/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | http://www.4chan.org/ 6 | 2015-01-08 7 | hourly 8 | 1.0 9 | 10 | 11 | http://www.4chan.org/rules 12 | 2015-01-08 13 | weekly 14 | 0.9 15 | 16 | 17 | http://www.4chan.org/news 18 | 2014-10-01 19 | monthly 20 | 0.9 21 | 22 | 23 | http://www.4chan.org/faq 24 | 2015-01-08 25 | monthly 26 | 0.9 27 | 28 | 29 | http://www.4chan.org/pass 30 | 2015-01-08 31 | monthly 32 | 0.9 33 | 34 | 35 | http://www.4chan.org/legal 36 | 2015-01-08 37 | monthly 38 | 0.8 39 | 40 | 41 | http://www.4chan.org/contests 42 | 2013-07-08 43 | monthly 44 | 0.7 45 | 46 | 47 | http://www.4chan.org/flash 48 | 2014-10-01 49 | monthly 50 | 0.8 51 | 52 | 53 | http://www.4chan.org/frames 54 | 2014-01-08 55 | monthly 56 | 0.0 57 | 58 | 59 | http://www.4chan.org/japanese 60 | 2008-11-21 61 | yearly 62 | 0.7 63 | 64 | 65 | http://www.4chan.org/feedback 66 | 2015-01-08 67 | monthly 68 | 0.8 69 | 70 | 71 | http://www.4chan.org/bans 72 | 2015-01-08 73 | daily 74 | 0.7 75 | 76 | 77 | http://www.4chan.org/banned 78 | 2015-01-14 79 | daily 80 | 0.0 81 | 82 | 83 | http://www.4chan.org/contests/bannerwin 84 | 2007-12-06 85 | yearly 86 | 0.6 87 | 88 | 89 | http://www.4chan.org/contests/imagewin 90 | 2007-12-06 91 | yearly 92 | 0.6 93 | 94 | 95 | http://www.4chan.org/contests/iconwin 96 | 2007-12-06 97 | yearly 98 | 0.6 99 | 100 | 101 | http://www.4chan.org/contests/logoreduxwin 102 | 2008-11-21 103 | yearly 104 | 0.6 105 | 106 | 107 | http://www.4chan.org/contests/logowin 108 | 2007-12-06 109 | yearly 110 | 0.6 111 | 112 | 113 | http://www.4chan.org/blotter 114 | 2008-02-29 115 | weekly 116 | 0.8 117 | 118 | 119 | http://www.4chan.org/news?all 120 | 2014-10-01 121 | monthly 122 | 0.8 123 | 124 | 125 | http://www.4chan.org/advertise 126 | 2015-01-08 127 | monthly 128 | 0.9 129 | 130 | 131 | http://www.4chan.org/press 132 | 2011-12-31 133 | monthly 134 | 0.9 135 | 136 | 137 | http://www.4chan.org/contact 138 | 2015-01-08 139 | monthly 140 | 0.8 141 | 142 | 143 | -------------------------------------------------------------------------------- /state.json: -------------------------------------------------------------------------------- 1 | {"cssVersion":611,"jsVersion":993} -------------------------------------------------------------------------------- /track.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | 4 | var request = require('request'); 5 | var jsBeautify = require('js-beautify'); 6 | var prettyCss = require('PrettyCSS'); 7 | var fs = require('fs'); 8 | var htmlBeautify = require('html'); 9 | var cheerio = require('cheerio'); 10 | var FileCookieStore = require('tough-cookie-filestore'); 11 | var winston = require('winston'); 12 | 13 | winston.add(winston.transports.File, { 14 | filename: 'track.log', 15 | maxsize: 1024 * 1024, 16 | maxFiles: 1 17 | }); 18 | 19 | try { 20 | fs.statSync('cookies.json'); 21 | } catch(e) { 22 | fs.writeFileSync('cookies.json', ''); 23 | } 24 | 25 | var cookieJar = request.jar(new FileCookieStore('cookies.json')); 26 | 27 | var state = {}; 28 | 29 | var inArray = function(a, n) { 30 | for (var i = 0; i < a.length; i++) { 31 | if (a[i] === n) { 32 | return true; 33 | } 34 | } 35 | return false; 36 | } 37 | 38 | var log = function(e) { 39 | winston.log('info', e); 40 | } 41 | 42 | var logError = function(e) { 43 | winston.error(e); 44 | console.trace(); 45 | fs.writeFileSync('error', 'An error occurred with the script, please check the console.'); 46 | } 47 | 48 | var loadState = function() { 49 | try { 50 | var fileState = fs.readFileSync('state.json'); 51 | if (fileState) { 52 | state = JSON.parse(fileState); 53 | } 54 | } catch(e) { 55 | logError(e); 56 | } 57 | } 58 | 59 | var saveState = function() { 60 | fs.writeFileSync('state.json', JSON.stringify(state)); 61 | } 62 | 63 | var get = function(url, callback, goodCodes) { 64 | var goodCodes = goodCodes === undefined ? [200] : goodCodes; 65 | 66 | log('Getting ' + url); 67 | request({ 68 | url: url, 69 | jar: cookieJar, 70 | headers: { 71 | 'User-Agent': 'curl' 72 | } 73 | }, function(error, response, body) { 74 | if (error) { 75 | winston.error(error); 76 | } else { 77 | if (inArray(goodCodes, response.statusCode)) { 78 | log('Got ' + url); 79 | callback(body); 80 | } else if ((response.statusCode >= 500 && response.statusCode < 600) || response.statusCode == 409) { 81 | // Server error / overloaded, ignore 82 | log('Got ' + response.statusCode + ' getting ' + url); 83 | } else { 84 | logError('Error loading ' + url + ' (' + response.statusCode + '): ' + error); 85 | } 86 | } 87 | }); 88 | } 89 | 90 | var loadJsonAndBeautify = function(url, name) { 91 | get(url, function(body) { 92 | log('Beautifying ' + name); 93 | var nice = jsBeautify.js_beautify(body, { "preserve_newlines": false }); 94 | 95 | fs.writeFileSync(name, nice); 96 | }); 97 | } 98 | 99 | var loadCssAndBeautify = function(url, name) { 100 | get(url, function(body) { 101 | log('Beautifying ' + name + '.css'); 102 | var nice = prettyCss.parse(body); 103 | 104 | fs.writeFileSync('css/' + name + '.css', nice); 105 | }); 106 | } 107 | 108 | var loadFile = function(url, name, goodCodes) { 109 | get(url, function(body) { 110 | fs.writeFileSync(name, body); 111 | }, goodCodes); 112 | } 113 | 114 | var load = function() { 115 | try { 116 | fs.unlinkSync('error'); 117 | } catch (e) {}; 118 | 119 | loadState(); 120 | 121 | var now = Date.now(); 122 | 123 | get('https://boards.4chan.org/g/', function(body) { 124 | var dom = cheerio.load(body); 125 | var sticky = dom('#t51971506'); 126 | var stickyHtml = sticky.html(); 127 | // Force 0 128 | stickyHtml = stickyHtml.replace(/\d.t.4cdn.org/gi, '0.t.4cdn.org'); 129 | fs.writeFileSync('html/post.html', htmlBeautify.prettyPrint(stickyHtml)); 130 | 131 | var newThread = dom('form[name=post]'); 132 | fs.writeFileSync('html/form_thread.html', htmlBeautify.prettyPrint(newThread.html())); 133 | 134 | var globalMessage = dom('div.globalMessage').html(); 135 | fs.writeFileSync('html/global_message.html', globalMessage === null ? 'No global message' : htmlBeautify.prettyPrint(globalMessage)); 136 | }); 137 | 138 | loadJsonAndBeautify('https://a.4cdn.org/boards.json', 'api/boards.json'); 139 | 140 | get('https://www.4chan.org/', function(body) { 141 | body = body.replace(/Total Posts:.+?<\/div>/gi, 'Total Posts snip'); 142 | body = body.replace(/Current Users:.+?<\/div>/gi, 'Current Users snip'); 143 | body = body.replace(/Active Content:.+?<\/div>/gi, 'Active Content snip'); 144 | 145 | body = body.replace(/
[\s\S]+
/gi, 146 | 'Popular Threads snip\n
') 147 | 148 | fs.writeFileSync('pages/home.html', body); 149 | }); 150 | 151 | get('https://www.4chan.org/pass', function(body) { 152 | body = body.replace(/var temp_id = '[\w]+'/gi, 'var temp_id = \'snip\''); 153 | body = body.replace(/'temp_id', '[\w]+'/gi, '\'temp_id\', \'snip\''); 154 | body = body.replace(/name="temp_id" value="([^"]*)"/gi, 'name="temp_id" value="snip"'); 155 | 156 | fs.writeFileSync('pages/pass.html', body); 157 | }); 158 | 159 | get('https://www.4channel.org/pass', function(body) { 160 | body = body.replace(/var temp_id = '[\w]+'/gi, 'var temp_id = \'snip\''); 161 | body = body.replace(/'temp_id', '[\w]+'/gi, '\'temp_id\', \'snip\''); 162 | body = body.replace(/name="temp_id" value="([^"]*)"/gi, 'name="temp_id" value="snip"'); 163 | 164 | fs.writeFileSync('pages/4channel_pass.html', body); 165 | }); 166 | 167 | 168 | loadFile('https://www.4chan.org/faq', 'pages/faq.html'); 169 | loadFile('https://www.4chan.org/rules', 'pages/rules.html'); 170 | loadFile('https://www.4chan.org/4channews.php', 'pages/news.html'); 171 | // loadFile('https://www.4chan.org/blotter', 'pages/blotter.html'); 172 | loadFile('https://www.4chan.org/legal', 'pages/legal.html'); 173 | loadFile('https://www.4chan.org/security', 'pages/security.html'); 174 | loadFile('https://www.4chan.org/feedback', 'pages/feedback.html'); 175 | loadFile('https://www.4chan.org/advertise', 'pages/advertise.html'); 176 | loadFile('https://www.4chan.org/press', 'pages/press.html'); 177 | loadFile('https://www.4chan.org/contact', 'pages/contact.html'); 178 | loadFile('https://www.4chan.org/flash', 'pages/flash.html'); 179 | loadFile('https://www.4chan.org/404foobar', 'pages/404.html', [404]); 180 | loadFile('https://www.4chan.org/robots.txt', 'pages/robots.txt'); 181 | loadFile('https://www.4chan.org/sitemap.xml', 'pages/sitemap.xml'); 182 | 183 | loadFile('https://s.4cdn.org/js/core.' + now + '.js', 'javascripts/core.js'); 184 | loadFile('https://s.4cdn.org/js/extension.' + now + '.js', 'javascripts/extension.js'); 185 | loadFile('https://s.4cdn.org/js/catalog.' + now + '.js', 'javascripts/catalog.js'); 186 | loadFile('https://s.4cdn.org/js/bans.' + now + '.js', 'javascripts/bans.js'); 187 | loadFile('https://s.4cdn.org/js/frontpage.' + now + '.js', 'javascripts/frontpage.js'); 188 | 189 | loadCssAndBeautify('https://s.4cdn.org/css/yotsubluenew.' + now + '.css', 'yotsubluenew'); 190 | loadCssAndBeautify('https://s.4cdn.org/css/yotsubanew.' + now + '.css', 'yotsubanew'); 191 | loadCssAndBeautify('https://s.4cdn.org/css/futabanew.' + now + '.css', 'futubanew'); 192 | loadCssAndBeautify('https://s.4cdn.org/css/burichannew.' + now + '.css', 'burichannew'); 193 | loadCssAndBeautify('https://s.4cdn.org/css/photon.' + now + '.css', 'photon'); 194 | loadCssAndBeautify('https://s.4cdn.org/css/tomorrow.' + now + '.css', 'tomorrow'); 195 | loadCssAndBeautify('https://s.4cdn.org/css/yotsubluemobile.' + now + '.css', 'yotsubluemobile'); 196 | loadCssAndBeautify('https://s.4cdn.org/css/yui.' + now + '.css', 'yui'); 197 | loadCssAndBeautify('https://s.4cdn.org/css/janichan.' + now + '.css', 'janichan'); 198 | loadCssAndBeautify('https://s.4cdn.org/css/global.' + now + '.css', 'global'); 199 | loadCssAndBeautify('https://s.4cdn.org/css/spooky.' + now + '.css', 'spooky'); 200 | loadCssAndBeautify('https://s.4cdn.org/css/md2016.' + now + '.css', 'md2016'); 201 | loadCssAndBeautify('https://s.4cdn.org/css/error.' + now + '.css', 'error'); 202 | loadCssAndBeautify('https://s.4cdn.org/css/bans.' + now + '.css', 'bans'); 203 | loadCssAndBeautify('https://s.4cdn.org/css/spooky2017.' + now + '.css', 'spooky2017'); 204 | } 205 | 206 | process.on('uncaughtException', function(e) { 207 | logError(e); 208 | }); 209 | 210 | load(); 211 | 212 | })(); 213 | -------------------------------------------------------------------------------- /track.sh: -------------------------------------------------------------------------------- 1 | git pull --rebase origin master 2 | 3 | npm install --silent 4 | 5 | node track.js 6 | 7 | git add -A 8 | git commit -m "$(git status --porcelain)" 9 | git push origin master 10 | --------------------------------------------------------------------------------