summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorczaks <marcin@6irc.net>2013-08-16 10:07:24 -0400
committerczaks <marcin@6irc.net>2013-08-16 10:07:24 -0400
commit146243c473f24e6b86e711dd1afeebfcdd711af7 (patch)
tree9b50f4b5bf76ada14b29cd9b672758f37522bd03
parentc2ffd324369dc8db4f67e6f035ccc335b3b20be7 (diff)
parent0565e2119d54cb4be8c6931ee42acfb586188893 (diff)
Merge branch 'master' of https://github.com/savetheinternet/Tinyboard
Conflicts: inc/config.php inc/display.php inc/functions.php
-rw-r--r--README.md5
-rw-r--r--inc/config.php18
-rw-r--r--inc/display.php77
-rw-r--r--inc/functions.php90
-rw-r--r--inc/mod/pages.php30
-rw-r--r--js/inline-expanding.js5
-rw-r--r--post.php11
-rwxr-xr-xstatic/flags/ad.pngbin0 -> 643 bytes
-rwxr-xr-xstatic/flags/ae.pngbin0 -> 408 bytes
-rwxr-xr-xstatic/flags/af.pngbin0 -> 604 bytes
-rwxr-xr-xstatic/flags/ag.pngbin0 -> 591 bytes
-rwxr-xr-xstatic/flags/ai.pngbin0 -> 643 bytes
-rwxr-xr-xstatic/flags/al.pngbin0 -> 600 bytes
-rwxr-xr-xstatic/flags/am.pngbin0 -> 497 bytes
-rwxr-xr-xstatic/flags/an.pngbin0 -> 488 bytes
-rwxr-xr-xstatic/flags/ao.pngbin0 -> 611 bytes
-rwxr-xr-xstatic/flags/ar.pngbin0 -> 506 bytes
-rwxr-xr-xstatic/flags/as.pngbin0 -> 647 bytes
-rwxr-xr-xstatic/flags/at.pngbin0 -> 403 bytes
-rwxr-xr-xstatic/flags/au.pngbin0 -> 673 bytes
-rwxr-xr-xstatic/flags/aw.pngbin0 -> 524 bytes
-rwxr-xr-xstatic/flags/ax.pngbin0 -> 663 bytes
-rwxr-xr-xstatic/flags/az.pngbin0 -> 589 bytes
-rwxr-xr-xstatic/flags/ba.pngbin0 -> 593 bytes
-rwxr-xr-xstatic/flags/bb.pngbin0 -> 585 bytes
-rwxr-xr-xstatic/flags/bd.pngbin0 -> 504 bytes
-rwxr-xr-xstatic/flags/be.pngbin0 -> 449 bytes
-rwxr-xr-xstatic/flags/bf.pngbin0 -> 497 bytes
-rwxr-xr-xstatic/flags/bg.pngbin0 -> 462 bytes
-rwxr-xr-xstatic/flags/bh.pngbin0 -> 457 bytes
-rwxr-xr-xstatic/flags/bi.pngbin0 -> 675 bytes
-rwxr-xr-xstatic/flags/bj.pngbin0 -> 486 bytes
-rwxr-xr-xstatic/flags/bm.pngbin0 -> 611 bytes
-rwxr-xr-xstatic/flags/bn.pngbin0 -> 639 bytes
-rwxr-xr-xstatic/flags/bo.pngbin0 -> 500 bytes
-rwxr-xr-xstatic/flags/br.pngbin0 -> 593 bytes
-rwxr-xr-xstatic/flags/bs.pngbin0 -> 526 bytes
-rwxr-xr-xstatic/flags/bt.pngbin0 -> 631 bytes
-rwxr-xr-xstatic/flags/bv.pngbin0 -> 512 bytes
-rwxr-xr-xstatic/flags/bw.pngbin0 -> 443 bytes
-rwxr-xr-xstatic/flags/by.pngbin0 -> 514 bytes
-rwxr-xr-xstatic/flags/bz.pngbin0 -> 600 bytes
-rwxr-xr-xstatic/flags/ca.pngbin0 -> 628 bytes
-rwxr-xr-xstatic/flags/cc.pngbin0 -> 625 bytes
-rwxr-xr-xstatic/flags/cd.pngbin0 -> 571 bytes
-rwxr-xr-xstatic/flags/cf.pngbin0 -> 614 bytes
-rwxr-xr-xstatic/flags/cg.pngbin0 -> 521 bytes
-rwxr-xr-xstatic/flags/ch.pngbin0 -> 367 bytes
-rwxr-xr-xstatic/flags/ci.pngbin0 -> 453 bytes
-rwxr-xr-xstatic/flags/ck.pngbin0 -> 586 bytes
-rwxr-xr-xstatic/flags/cl.pngbin0 -> 450 bytes
-rwxr-xr-xstatic/flags/cm.pngbin0 -> 525 bytes
-rwxr-xr-xstatic/flags/cn.pngbin0 -> 472 bytes
-rwxr-xr-xstatic/flags/co.pngbin0 -> 483 bytes
-rwxr-xr-xstatic/flags/cr.pngbin0 -> 477 bytes
-rwxr-xr-xstatic/flags/cs.pngbin0 -> 439 bytes
-rwxr-xr-xstatic/flags/cu.pngbin0 -> 563 bytes
-rwxr-xr-xstatic/flags/cv.pngbin0 -> 529 bytes
-rwxr-xr-xstatic/flags/cx.pngbin0 -> 608 bytes
-rwxr-xr-xstatic/flags/cy.pngbin0 -> 428 bytes
-rwxr-xr-xstatic/flags/cz.pngbin0 -> 476 bytes
-rwxr-xr-xstatic/flags/de.pngbin0 -> 545 bytes
-rwxr-xr-xstatic/flags/dj.pngbin0 -> 572 bytes
-rwxr-xr-xstatic/flags/dk.pngbin0 -> 495 bytes
-rwxr-xr-xstatic/flags/dm.pngbin0 -> 620 bytes
-rwxr-xr-xstatic/flags/do.pngbin0 -> 508 bytes
-rwxr-xr-xstatic/flags/dz.pngbin0 -> 582 bytes
-rwxr-xr-xstatic/flags/ec.pngbin0 -> 500 bytes
-rwxr-xr-xstatic/flags/ee.pngbin0 -> 429 bytes
-rwxr-xr-xstatic/flags/eg.pngbin0 -> 465 bytes
-rwxr-xr-xstatic/flags/eh.pngbin0 -> 508 bytes
-rwxr-xr-xstatic/flags/er.pngbin0 -> 653 bytes
-rwxr-xr-xstatic/flags/es.pngbin0 -> 469 bytes
-rwxr-xr-xstatic/flags/et.pngbin0 -> 592 bytes
-rwxr-xr-xstatic/flags/fi.pngbin0 -> 489 bytes
-rwxr-xr-xstatic/flags/fj.pngbin0 -> 610 bytes
-rwxr-xr-xstatic/flags/fk.pngbin0 -> 648 bytes
-rwxr-xr-xstatic/flags/fm.pngbin0 -> 552 bytes
-rwxr-xr-xstatic/flags/fo.pngbin0 -> 474 bytes
-rwxr-xr-xstatic/flags/fr.pngbin0 -> 545 bytes
-rwxr-xr-xstatic/flags/ga.pngbin0 -> 489 bytes
-rwxr-xr-xstatic/flags/gb.pngbin0 -> 699 bytes
-rwxr-xr-xstatic/flags/gd.pngbin0 -> 637 bytes
-rwxr-xr-xstatic/flags/ge.pngbin0 -> 594 bytes
-rwxr-xr-xstatic/flags/gh.pngbin0 -> 490 bytes
-rwxr-xr-xstatic/flags/gi.pngbin0 -> 463 bytes
-rwxr-xr-xstatic/flags/gl.pngbin0 -> 470 bytes
-rwxr-xr-xstatic/flags/gm.pngbin0 -> 493 bytes
-rwxr-xr-xstatic/flags/gn.pngbin0 -> 480 bytes
-rwxr-xr-xstatic/flags/gp.pngbin0 -> 488 bytes
-rwxr-xr-xstatic/flags/gq.pngbin0 -> 537 bytes
-rwxr-xr-xstatic/flags/gr.pngbin0 -> 487 bytes
-rwxr-xr-xstatic/flags/gs.pngbin0 -> 630 bytes
-rwxr-xr-xstatic/flags/gt.pngbin0 -> 493 bytes
-rwxr-xr-xstatic/flags/gu.pngbin0 -> 509 bytes
-rwxr-xr-xstatic/flags/gw.pngbin0 -> 516 bytes
-rwxr-xr-xstatic/flags/gy.pngbin0 -> 645 bytes
-rwxr-xr-xstatic/flags/hk.pngbin0 -> 527 bytes
-rwxr-xr-xstatic/flags/hn.pngbin0 -> 537 bytes
-rwxr-xr-xstatic/flags/hr.pngbin0 -> 524 bytes
-rwxr-xr-xstatic/flags/ht.pngbin0 -> 487 bytes
-rwxr-xr-xstatic/flags/hu.pngbin0 -> 432 bytes
-rwxr-xr-xstatic/flags/id.pngbin0 -> 430 bytes
-rwxr-xr-xstatic/flags/ie.pngbin0 -> 481 bytes
-rwxr-xr-xstatic/flags/il.pngbin0 -> 431 bytes
-rwxr-xr-xstatic/flags/in.pngbin0 -> 503 bytes
-rwxr-xr-xstatic/flags/io.pngbin0 -> 658 bytes
-rwxr-xr-xstatic/flags/iq.pngbin0 -> 515 bytes
-rwxr-xr-xstatic/flags/ir.pngbin0 -> 512 bytes
-rwxr-xr-xstatic/flags/is.pngbin0 -> 532 bytes
-rwxr-xr-xstatic/flags/it.pngbin0 -> 420 bytes
-rwxr-xr-xstatic/flags/jm.pngbin0 -> 637 bytes
-rwxr-xr-xstatic/flags/jo.pngbin0 -> 473 bytes
-rwxr-xr-xstatic/flags/jp.pngbin0 -> 420 bytes
-rwxr-xr-xstatic/flags/ke.pngbin0 -> 569 bytes
-rwxr-xr-xstatic/flags/kg.pngbin0 -> 510 bytes
-rwxr-xr-xstatic/flags/kh.pngbin0 -> 549 bytes
-rwxr-xr-xstatic/flags/ki.pngbin0 -> 656 bytes
-rwxr-xr-xstatic/flags/km.pngbin0 -> 577 bytes
-rwxr-xr-xstatic/flags/kn.pngbin0 -> 604 bytes
-rwxr-xr-xstatic/flags/kp.pngbin0 -> 561 bytes
-rwxr-xr-xstatic/flags/kr.pngbin0 -> 592 bytes
-rwxr-xr-xstatic/flags/kw.pngbin0 -> 486 bytes
-rwxr-xr-xstatic/flags/ky.pngbin0 -> 643 bytes
-rwxr-xr-xstatic/flags/kz.pngbin0 -> 616 bytes
-rwxr-xr-xstatic/flags/la.pngbin0 -> 563 bytes
-rwxr-xr-xstatic/flags/lb.pngbin0 -> 517 bytes
-rwxr-xr-xstatic/flags/lc.pngbin0 -> 606 bytes
-rwxr-xr-xstatic/flags/li.pngbin0 -> 537 bytes
-rwxr-xr-xstatic/flags/lk.pngbin0 -> 627 bytes
-rwxr-xr-xstatic/flags/lr.pngbin0 -> 466 bytes
-rwxr-xr-xstatic/flags/ls.pngbin0 -> 628 bytes
-rwxr-xr-xstatic/flags/lt.pngbin0 -> 508 bytes
-rwxr-xr-xstatic/flags/lu.pngbin0 -> 481 bytes
-rwxr-xr-xstatic/flags/lv.pngbin0 -> 465 bytes
-rwxr-xr-xstatic/flags/ly.pngbin0 -> 419 bytes
-rwxr-xr-xstatic/flags/ma.pngbin0 -> 432 bytes
-rwxr-xr-xstatic/flags/mc.pngbin0 -> 380 bytes
-rwxr-xr-xstatic/flags/md.pngbin0 -> 566 bytes
-rwxr-xr-xstatic/flags/mg.pngbin0 -> 453 bytes
-rwxr-xr-xstatic/flags/mh.pngbin0 -> 628 bytes
-rwxr-xr-xstatic/flags/mk.pngbin0 -> 664 bytes
-rwxr-xr-xstatic/flags/ml.pngbin0 -> 474 bytes
-rwxr-xr-xstatic/flags/mm.pngbin0 -> 483 bytes
-rwxr-xr-xstatic/flags/mn.pngbin0 -> 492 bytes
-rwxr-xr-xstatic/flags/mo.pngbin0 -> 588 bytes
-rwxr-xr-xstatic/flags/mp.pngbin0 -> 597 bytes
-rwxr-xr-xstatic/flags/mq.pngbin0 -> 655 bytes
-rwxr-xr-xstatic/flags/mr.pngbin0 -> 569 bytes
-rwxr-xr-xstatic/flags/ms.pngbin0 -> 614 bytes
-rwxr-xr-xstatic/flags/mt.pngbin0 -> 420 bytes
-rwxr-xr-xstatic/flags/mu.pngbin0 -> 496 bytes
-rwxr-xr-xstatic/flags/mv.pngbin0 -> 542 bytes
-rwxr-xr-xstatic/flags/mw.pngbin0 -> 529 bytes
-rwxr-xr-xstatic/flags/mx.pngbin0 -> 574 bytes
-rwxr-xr-xstatic/flags/my.pngbin0 -> 571 bytes
-rwxr-xr-xstatic/flags/mz.pngbin0 -> 584 bytes
-rwxr-xr-xstatic/flags/na.pngbin0 -> 647 bytes
-rwxr-xr-xstatic/flags/nc.pngbin0 -> 591 bytes
-rwxr-xr-xstatic/flags/ne.pngbin0 -> 537 bytes
-rwxr-xr-xstatic/flags/nf.pngbin0 -> 602 bytes
-rwxr-xr-xstatic/flags/ng.pngbin0 -> 482 bytes
-rwxr-xr-xstatic/flags/ni.pngbin0 -> 508 bytes
-rwxr-xr-xstatic/flags/nl.pngbin0 -> 453 bytes
-rwxr-xr-xstatic/flags/no.pngbin0 -> 512 bytes
-rwxr-xr-xstatic/flags/np.pngbin0 -> 443 bytes
-rwxr-xr-xstatic/flags/nr.pngbin0 -> 527 bytes
-rwxr-xr-xstatic/flags/nu.pngbin0 -> 572 bytes
-rwxr-xr-xstatic/flags/nz.pngbin0 -> 639 bytes
-rwxr-xr-xstatic/flags/om.pngbin0 -> 478 bytes
-rwxr-xr-xstatic/flags/pa.pngbin0 -> 519 bytes
-rwxr-xr-xstatic/flags/pe.pngbin0 -> 397 bytes
-rwxr-xr-xstatic/flags/pf.pngbin0 -> 498 bytes
-rwxr-xr-xstatic/flags/pg.pngbin0 -> 593 bytes
-rwxr-xr-xstatic/flags/ph.pngbin0 -> 538 bytes
-rwxr-xr-xstatic/flags/pk.pngbin0 -> 569 bytes
-rwxr-xr-xstatic/flags/pl.pngbin0 -> 374 bytes
-rwxr-xr-xstatic/flags/pm.pngbin0 -> 689 bytes
-rwxr-xr-xstatic/flags/pn.pngbin0 -> 657 bytes
-rwxr-xr-xstatic/flags/pr.pngbin0 -> 556 bytes
-rwxr-xr-xstatic/flags/ps.pngbin0 -> 472 bytes
-rwxr-xr-xstatic/flags/pt.pngbin0 -> 554 bytes
-rwxr-xr-xstatic/flags/pw.pngbin0 -> 550 bytes
-rwxr-xr-xstatic/flags/py.pngbin0 -> 473 bytes
-rwxr-xr-xstatic/flags/qa.pngbin0 -> 450 bytes
-rwxr-xr-xstatic/flags/ro.pngbin0 -> 495 bytes
-rwxr-xr-xstatic/flags/ru.pngbin0 -> 420 bytes
-rwxr-xr-xstatic/flags/rw.pngbin0 -> 533 bytes
-rwxr-xr-xstatic/flags/sa.pngbin0 -> 551 bytes
-rwxr-xr-xstatic/flags/sb.pngbin0 -> 624 bytes
-rwxr-xr-xstatic/flags/sc.pngbin0 -> 608 bytes
-rwxr-xr-xstatic/flags/sd.pngbin0 -> 492 bytes
-rwxr-xr-xstatic/flags/se.pngbin0 -> 542 bytes
-rwxr-xr-xstatic/flags/sg.pngbin0 -> 468 bytes
-rwxr-xr-xstatic/flags/sh.pngbin0 -> 645 bytes
-rwxr-xr-xstatic/flags/si.pngbin0 -> 510 bytes
-rwxr-xr-xstatic/flags/sk.pngbin0 -> 562 bytes
-rwxr-xr-xstatic/flags/sl.pngbin0 -> 436 bytes
-rwxr-xr-xstatic/flags/sm.pngbin0 -> 502 bytes
-rwxr-xr-xstatic/flags/sn.pngbin0 -> 532 bytes
-rwxr-xr-xstatic/flags/so.pngbin0 -> 527 bytes
-rwxr-xr-xstatic/flags/sr.pngbin0 -> 513 bytes
-rwxr-xr-xstatic/flags/st.pngbin0 -> 584 bytes
-rwxr-xr-xstatic/flags/sv.pngbin0 -> 501 bytes
-rwxr-xr-xstatic/flags/sy.pngbin0 -> 422 bytes
-rwxr-xr-xstatic/flags/sz.pngbin0 -> 643 bytes
-rwxr-xr-xstatic/flags/tc.pngbin0 -> 624 bytes
-rwxr-xr-xstatic/flags/td.pngbin0 -> 570 bytes
-rwxr-xr-xstatic/flags/tf.pngbin0 -> 527 bytes
-rwxr-xr-xstatic/flags/tg.pngbin0 -> 562 bytes
-rwxr-xr-xstatic/flags/th.pngbin0 -> 452 bytes
-rwxr-xr-xstatic/flags/tj.pngbin0 -> 496 bytes
-rwxr-xr-xstatic/flags/tk.pngbin0 -> 638 bytes
-rwxr-xr-xstatic/flags/tl.pngbin0 -> 514 bytes
-rwxr-xr-xstatic/flags/tm.pngbin0 -> 593 bytes
-rwxr-xr-xstatic/flags/tn.pngbin0 -> 495 bytes
-rwxr-xr-xstatic/flags/to.pngbin0 -> 426 bytes
-rwxr-xr-xstatic/flags/tr.pngbin0 -> 492 bytes
-rwxr-xr-xstatic/flags/tt.pngbin0 -> 617 bytes
-rwxr-xr-xstatic/flags/tv.pngbin0 -> 536 bytes
-rwxr-xr-xstatic/flags/tw.pngbin0 -> 465 bytes
-rwxr-xr-xstatic/flags/tz.pngbin0 -> 642 bytes
-rwxr-xr-xstatic/flags/ua.pngbin0 -> 446 bytes
-rwxr-xr-xstatic/flags/ug.pngbin0 -> 531 bytes
-rwxr-xr-xstatic/flags/um.pngbin0 -> 571 bytes
-rwxr-xr-xstatic/flags/us.pngbin0 -> 609 bytes
-rwxr-xr-xstatic/flags/uy.pngbin0 -> 532 bytes
-rwxr-xr-xstatic/flags/uz.pngbin0 -> 515 bytes
-rwxr-xr-xstatic/flags/va.pngbin0 -> 553 bytes
-rwxr-xr-xstatic/flags/vc.pngbin0 -> 577 bytes
-rwxr-xr-xstatic/flags/ve.pngbin0 -> 528 bytes
-rwxr-xr-xstatic/flags/vg.pngbin0 -> 630 bytes
-rwxr-xr-xstatic/flags/vi.pngbin0 -> 616 bytes
-rwxr-xr-xstatic/flags/vn.pngbin0 -> 474 bytes
-rwxr-xr-xstatic/flags/vu.pngbin0 -> 604 bytes
-rwxr-xr-xstatic/flags/wf.pngbin0 -> 554 bytes
-rwxr-xr-xstatic/flags/ws.pngbin0 -> 476 bytes
-rwxr-xr-xstatic/flags/ye.pngbin0 -> 413 bytes
-rwxr-xr-xstatic/flags/yt.pngbin0 -> 593 bytes
-rwxr-xr-xstatic/flags/za.pngbin0 -> 642 bytes
-rwxr-xr-xstatic/flags/zm.pngbin0 -> 500 bytes
-rwxr-xr-xstatic/flags/zw.pngbin0 -> 574 bytes
-rw-r--r--stylesheets/style.css7
-rw-r--r--templates/post_reply.html14
-rw-r--r--templates/post_thread.html14
245 files changed, 112 insertions, 159 deletions
diff --git a/README.md b/README.md
index e262b741..c7d968d9 100644
--- a/README.md
+++ b/README.md
@@ -10,9 +10,8 @@ It contains many changes from original Tinyboard, mainly in frontend area.
About
------------
-Tinyboard is a light-weight, fast, highly configurable and user-friendly
-imageboard software package released under a non-restrictive open-source
-license. It is written in PHP and has few dependencies.
+Tinyboard is a free light-weight, fast, highly configurable and user-friendly
+imageboard software package. It is written in PHP and has few dependencies.
Requirements
------------
diff --git a/inc/config.php b/inc/config.php
index da97b496..686894d1 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -391,6 +391,11 @@
// When true, users are instead presented a selectbox for email. Contains, blank, noko and sage.
$config['field_email_selectbox'] = false;
+ // Attach country flags to posts. Requires the PHP "geoip" extension to be installed:
+ // http://www.php.net/manual/en/intro.geoip.php. In the future, maybe I will find and include a proper
+ // pure-PHP geolocation library.
+ $config['country_flags'] = false;
+
// Require users to see the ban page at least once for a ban even if it has since expired.
$config['require_ban_view'] = true;
@@ -760,6 +765,17 @@
// Optional HTML to append to "You are banned" pages. For example, you could include instructions and/or
// a link to an email address or IRC chat room to appeal the ban.
$config['ban_page_extra'] = '';
+
+ // Display flags (when available). This config option has no effect unless poster flags are enabled (see
+ // $config['country_flags']). Disable this if you want all previously-assigned flags to be hidden.
+ $config['display_flags'] = true;
+
+ // Location of post flags/icons (where "%s" is the flag name). Defaults to static/flags/%s.png.
+ // $config['uri_flags'] = 'http://static.example.org/flags/%s.png';
+
+ // Width and height (and more?) of post flags. Can be overridden with the Tinyboard post modifier:
+ // <tinyboard flag style>.
+ $config['flag_style'] = 'width:16px;height:11px;';
/*
* ====================
@@ -970,7 +986,7 @@
// $config['url_favicon'] = '/favicon.gif';
// EXPERIMENTAL: Try not to build pages when we shouldn't have to.
- $config['try_smarter'] = false;
+ $config['try_smarter'] = true;
/*
* ====================
diff --git a/inc/display.php b/inc/display.php
index 68fb1803..d4aa303b 100644
--- a/inc/display.php
+++ b/inc/display.php
@@ -271,36 +271,25 @@ function embed_html($link) {
}
class Post {
- public function __construct($id, $thread, $subject, $email, $name, $trip, $capcode, $body, $time, $thumb, $thumbx, $thumby, $file, $filex, $filey, $filesize, $filename, $ip, $embed, $root=null, $mod=false) {
+ public function __construct($post, $root=null, $mod=false) {
global $config;
if (!isset($root))
$root = &$config['root'];
- $this->id = $id;
- $this->thread = $thread;
- $this->subject = utf8tohtml($subject);
- $this->email = $email;
- $this->name = utf8tohtml($name);
- $this->trip = $trip;
- $this->capcode = $capcode;
- $this->body = $body;
- $this->time = $time;
- $this->thumb = $thumb;
- $this->thumbx = $thumbx;
- $this->thumby = $thumby;
- $this->file = $file;
- $this->filex = $filex;
- $this->filey = $filey;
- $this->filesize = $filesize;
- $this->filename = $filename;
- $this->ip = $ip;
- $this->embed = $embed;
- $this->root = $root;
+ foreach ($post as $key => $value) {
+ $this->{$key} = $value;
+ }
+
+ $this->subject = utf8tohtml($this->subject);
+ $this->name = utf8tohtml($this->name);
$this->mod = $mod;
+ $this->root = $root;
if ($this->embed)
$this->embed = embed_html($this->embed);
+ $this->modifiers = extract_modifiers($this->body_nomarkup);
+
if ($this->mod)
// Fix internal links
// Very complicated regex
@@ -373,42 +362,30 @@ class Post {
};
class Thread {
- public function __construct($id, $subject, $email, $name, $trip, $capcode, $body, $time, $thumb, $thumbx, $thumby, $file, $filex, $filey, $filesize, $filename, $ip, $sticky, $locked, $bumplocked, $embed, $root=null, $mod=false, $hr=true) {
+ public function __construct($post, $root = null, $mod = false, $hr = true) {
global $config;
if (!isset($root))
$root = &$config['root'];
- $this->id = $id;
- $this->subject = utf8tohtml($subject);
- $this->email = $email;
- $this->name = utf8tohtml($name);
- $this->trip = $trip;
- $this->capcode = $capcode;
- $this->body = $body;
- $this->time = $time;
- $this->thumb = $thumb;
- $this->thumbx = $thumbx;
- $this->thumby = $thumby;
- $this->file = $file;
- $this->filex = $filex;
- $this->filey = $filey;
- $this->filesize = $filesize;
- $this->filename = $filename;
- $this->omitted = 0;
- $this->omitted_images = 0;
- $this->posts = array();
- $this->ip = $ip;
- $this->sticky = $sticky;
- $this->locked = $locked;
- $this->bumplocked = $bumplocked;
- $this->embed = $embed;
- $this->root = $root;
+ foreach ($post as $key => $value) {
+ $this->{$key} = $value;
+ }
+
+ $this->subject = utf8tohtml($this->subject);
+ $this->name = utf8tohtml($this->name);
$this->mod = $mod;
+ $this->root = $root;
$this->hr = $hr;
+
+ $this->posts = array();
+ $this->omitted = 0;
+ $this->omitted_images = 0;
if ($this->embed)
$this->embed = embed_html($this->embed);
+ $this->modifiers = extract_modifiers($this->body_nomarkup);
+
if ($this->mod)
// Fix internal links
// Very complicated regex
@@ -471,7 +448,7 @@ class Thread {
$built .= ' <a title="'._('Make thread sticky').'" href="?/' . secure_link($board['dir'] . 'sticky/' . $this->id) . '">' . $config['mod']['link_sticky'] . '</a>';
if (hasPermission($config['mod']['bumplock'], $board['uri'], $this->mod))
- if ($this->bumplocked)
+ if ($this->sage)
$built .= ' <a title="'._('Allow thread to be bumped').'" href="?/' . secure_link($board['dir'] . 'bumpunlock/' . $this->id) . '">' . $config['mod']['link_bumpunlock'] . '</a>';
else
$built .= ' <a title="'._('Prevent thread from being bumped').'" href="?/' . secure_link($board['dir'] . 'bumplock/' . $this->id) . '">' . $config['mod']['link_bumplock'] . '</a>';
@@ -496,10 +473,6 @@ class Thread {
return $built;
}
- public function ratio() {
- return fraction($this->filex, $this->filey, ':');
- }
-
public function build($index=false, $isnoko50=false) {
global $board, $config, $debug;
diff --git a/inc/functions.php b/inc/functions.php
index 32d0b819..dccb59e5 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -153,6 +153,8 @@ function loadConfig() {
$config['url_javascript'] = $config['root'] . $config['file_script'];
if (!isset($config['additional_javascript_url']))
$config['additional_javascript_url'] = $config['root'];
+ if (!isset($config['uri_flags']))
+ $config['uri_flags'] = $config['root'] . 'static/flags/%s.png';
if ($config['root_file']) {
chdir($config['root_file']);
@@ -1052,11 +1054,7 @@ function index($page, $mod=false) {
$threads = array();
while ($th = $query->fetch(PDO::FETCH_ASSOC)) {
- $thread = new Thread(
- $th['id'], $th['subject'], $th['email'], $th['name'], $th['trip'], $th['capcode'], $th['body'], $th['time'], $th['thumb'],
- $th['thumbwidth'], $th['thumbheight'], $th['file'], $th['filewidth'], $th['fileheight'], $th['filesize'], $th['filename'], $th['ip'],
- $th['sticky'], $th['locked'], $th['sage'], $th['embed'], $mod ? '?/' : $config['root'], $mod
- );
+ $thread = new Thread($th, $mod ? '?/' : $config['root'], $mod);
if ($config['cache']['enabled'] && $cached = cache::get("thread_index_{$board['uri']}_{$th['id']}")) {
$replies = $cached['replies'];
@@ -1088,11 +1086,7 @@ function index($page, $mod=false) {
if ($po['file'])
$num_images++;
- $thread->add(new Post(
- $po['id'], $th['id'], $po['subject'], $po['email'], $po['name'], $po['trip'], $po['capcode'], $po['body'], $po['time'],
- $po['thumb'], $po['thumbwidth'], $po['thumbheight'], $po['file'], $po['filewidth'], $po['fileheight'], $po['filesize'],
- $po['filename'], $po['ip'], $po['embed'], $mod ? '?/' : $config['root'], $mod)
- );
+ $thread->add(new Post($po, $mod ? '?/' : $config['root'], $mod));
}
if ($omitted) {
@@ -1496,55 +1490,33 @@ function unicodify($body) {
return $body;
}
+function extract_modifiers($body) {
+ $modifiers = array();
+
+ if (preg_match_all('@<tinyboard ([\w\s]+)>(.+?)</tinyboard>@us', $body, $matches, PREG_SET_ORDER)) {
+ foreach ($matches as $match) {
+ if (preg_match('/^escape /', $match[1]))
+ continue;
+ $modifiers[$match[1]] = html_entity_decode($match[2]);
+ }
+ }
+
+ return $modifiers;
+}
+
function markup(&$body, $track_cites = false) {
global $board, $config, $markup_urls;
+
+ $modifiers = extract_modifiers($body);
+
+ $body = preg_replace('@<tinyboard ([\w\s]+)>(.+?)</tinyboard>@us', '', $body);
+
+ if (isset($modifiers['raw html']) && $modifiers['raw html'] == '1')
+ return $body;
$body = str_replace("\r", '', $body);
$body = utf8tohtml($body);
- if (preg_match_all('@&lt;tinyboard ([\w\s]+)&gt;(.+?)&lt;/tinyboard&gt;@us', $body, $modifiers, PREG_SET_ORDER | PREG_OFFSET_CAPTURE)) {
- $skip_chars = 0;
- $body_tmp = $body;
- $end_markup = false;
-
- foreach ($modifiers as $modifier) {
- // preg_match_all is not multibyte-safe
- foreach ($modifier as &$match) {
- $match[1] = mb_strlen(substr($body_tmp, 0, $match[1]));
- }
-
- $modifier['type'] = $modifier[1][0];
- $modifier['content'] = $modifier[2][0];
-
- if ($modifier['type'] == 'ban message') {
- // Public ban message
- $replacement = sprintf($config['mod']['ban_message'], html_entity_decode($modifier['content']));
- if ($end_markup) {
- $body .= $replacement;
- }
- } elseif ($modifier['type'] == 'raw html') {
- $body = html_entity_decode($modifier['content']);
- $replacement = '';
- $end_markup = true;
- } elseif (preg_match('/^escape /', $modifier['type'])) {
- // Escaped (not a real modifier)
- $replacement = '&lt;tinyboard ' . substr($modifier['type'], strlen('escape ')) . '&gt;' . $modifier['content'] . '&lt;/tinyboard&gt;';
- } else {
- // Unknown
- $replacement = '';
- }
-
- if (!$end_markup) {
- $body = mb_substr_replace($body, $replacement, $modifier[0][1] + $skip_chars, mb_strlen($modifier[0][0]));
- $skip_chars += mb_strlen($replacement) - mb_strlen($modifier[0][0]);
- }
- }
-
- if ($end_markup) {
- return array();
- }
- }
-
if (mysql_version() < 50503)
$body = mb_encode_numericentity($body, array(0x010000, 0xffffff, 0, 0xffffff), 'UTF-8');
@@ -1759,17 +1731,9 @@ function buildThread($id, $return = false, $mod = false) {
while ($post = $query->fetch(PDO::FETCH_ASSOC)) {
if (!isset($thread)) {
- $thread = new Thread(
- $post['id'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'], $post['time'],
- $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'], $post['filesize'],
- $post['filename'], $post['ip'], $post['sticky'], $post['locked'], $post['sage'], $post['embed'], $mod ? '?/' : $config['root'], $mod
- );
+ $thread = new Thread($post, $mod ? '?/' : $config['root'], $mod);
} else {
- $thread->add(new Post(
- $post['id'], $thread->id, $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'],
- $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'],
- $post['filesize'], $post['filename'], $post['ip'], $post['embed'], $mod ? '?/' : $config['root'], $mod)
- );
+ $thread->add(new Post($post, $mod ? '?/' : $config['root'], $mod));
}
}
diff --git a/inc/mod/pages.php b/inc/mod/pages.php
index 8a743af5..6059fefe 100644
--- a/inc/mod/pages.php
+++ b/inc/mod/pages.php
@@ -790,19 +790,9 @@ function mod_page_ip($ip) {
while ($post = $query->fetch(PDO::FETCH_ASSOC)) {
if (!$post['thread']) {
- // TODO: There is no reason why this should be such a fucking mess.
- $po = new Thread(
- $post['id'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'],
- $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'],
- $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['sticky'], $post['locked'],
- $post['sage'], $post['embed'], '?/', $mod, false
- );
+ $po = new Thread($post, '?/', $mod, false);
} else {
- $po = new Post(
- $post['id'], $post['thread'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'],
- $post['body'], $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'],
- $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['embed'], '?/', $mod
- );
+ $po = new Post($post, '?/', $mod);
}
if (!isset($args['posts'][$board['uri']]))
@@ -1398,7 +1388,7 @@ function mod_edit_post($board, $edit_raw_html, $postID) {
$query->bindValue(':subject', $_POST['subject']);
$query->bindValue(':body', $_POST['body']);
if ($edit_raw_html) {
- $body_nomarkup = '<tinyboard raw html>' . $_POST['body'] . '</tinyboard>';
+ $body_nomarkup = $_POST['body'] . '<tinyboard raw html>1</tinyboard>';
$query->bindValue(':body_nomarkup', $body_nomarkup);
}
$query->execute() or error(db_error($query));
@@ -2012,19 +2002,9 @@ function mod_reports() {
if (!$post['thread']) {
// Still need to fix this:
- $po = new Thread(
- $post['id'], $post['subject'], $post['email'], $post['name'], $post['trip'],
- $post['capcode'], $post['body'], $post['time'], $post['thumb'],
- $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'],
- $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['sticky'],
- $post['locked'], $post['sage'], $post['embed'], '?/', $mod, false
- );
+ $po = new Thread($post, '?/', $mod, false);
} else {
- $po = new Post(
- $post['id'], $post['thread'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'],
- $post['body'], $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'],
- $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['embed'], '?/', $mod
- );
+ $po = new Post($post, '?/', $mod);
}
// a little messy and inefficient
diff --git a/js/inline-expanding.js b/js/inline-expanding.js
index 398db181..8710d632 100644
--- a/js/inline-expanding.js
+++ b/js/inline-expanding.js
@@ -16,10 +16,7 @@ onready(function(){
var link = this.getElementsByTagName('a');
for (var i = 0; i < link.length; i++) {
- if (typeof link[i] == "object" && link[i].childNodes && typeof link[i].childNodes[0] !== 'undefined' && link[i].childNodes[0].src && link[i].className != 'file') {
- if (window.jQuery && !$(link).prev().hasClass('fileinfo')) {
- continue;
- }
+ if (typeof link[i] == "object" && link[i].childNodes && typeof link[i].childNodes[0] !== 'undefined' && link[i].childNodes[0].src && link[i].childNodes[0].className.match(/post-image/)) {
link[i].childNodes[0].style.maxWidth = '95%';
link[i].onclick = function(e) {
if (this.childNodes[0].className == 'hidden')
diff --git a/post.php b/post.php
index 6721e804..ce45ea52 100644
--- a/post.php
+++ b/post.php
@@ -424,7 +424,16 @@ if (isset($_POST['delete'])) {
$post['body'] = escape_markup_modifiers($post['body']);
if ($mod && isset($post['raw']) && $post['raw']) {
- $post['body'] = '<tinyboard raw html>' . $post['body'] . '</tinyboard>';
+ $post['body'] .= '<tinyboard raw html>1</tinyboard>';
+ }
+
+ if ($config['country_flags']) {
+ if (!geoip_db_avail(GEOIP_COUNTRY_EDITION)) {
+ error('GeoIP not available: ' . geoip_db_filename(GEOIP_COUNTRY_EDITION));
+ }
+ if ($country_code = @geoip_country_code_by_name($_SERVER['REMOTE_ADDR'])) {
+ $post['body'] .= '<tinyboard flag>' . strtolower($country_code) . '</tinyboard>';
+ }
}
if (mysql_version() >= 50503) {
diff --git a/static/flags/ad.png b/static/flags/ad.png
new file mode 100755
index 00000000..625ca84f
--- /dev/null
+++ b/static/flags/ad.png
Binary files differ
diff --git a/static/flags/ae.png b/static/flags/ae.png
new file mode 100755
index 00000000..ef3a1ecf
--- /dev/null
+++ b/static/flags/ae.png
Binary files differ
diff --git a/static/flags/af.png b/static/flags/af.png
new file mode 100755
index 00000000..a4742e29
--- /dev/null
+++ b/static/flags/af.png
Binary files differ
diff --git a/static/flags/ag.png b/static/flags/ag.png
new file mode 100755
index 00000000..556d5504
--- /dev/null
+++ b/static/flags/ag.png
Binary files differ
diff --git a/static/flags/ai.png b/static/flags/ai.png
new file mode 100755
index 00000000..74ed29d9
--- /dev/null
+++ b/static/flags/ai.png
Binary files differ
diff --git a/static/flags/al.png b/static/flags/al.png
new file mode 100755
index 00000000..92354cb6
--- /dev/null
+++ b/static/flags/al.png
Binary files differ
diff --git a/static/flags/am.png b/static/flags/am.png
new file mode 100755
index 00000000..344a2a86
--- /dev/null
+++ b/static/flags/am.png
Binary files differ
diff --git a/static/flags/an.png b/static/flags/an.png
new file mode 100755
index 00000000..633e4b89
--- /dev/null
+++ b/static/flags/an.png
Binary files differ
diff --git a/static/flags/ao.png b/static/flags/ao.png
new file mode 100755
index 00000000..d6bd64a3
--- /dev/null
+++ b/static/flags/ao.png
Binary files differ
diff --git a/static/flags/ar.png b/static/flags/ar.png
new file mode 100755
index 00000000..e5ef8f1f
--- /dev/null
+++ b/static/flags/ar.png
Binary files differ
diff --git a/static/flags/as.png b/static/flags/as.png
new file mode 100755
index 00000000..32f30e4c
--- /dev/null
+++ b/static/flags/as.png
Binary files differ
diff --git a/static/flags/at.png b/static/flags/at.png
new file mode 100755
index 00000000..0f15f34f
--- /dev/null
+++ b/static/flags/at.png
Binary files differ
diff --git a/static/flags/au.png b/static/flags/au.png
new file mode 100755
index 00000000..a01389a7
--- /dev/null
+++ b/static/flags/au.png
Binary files differ
diff --git a/static/flags/aw.png b/static/flags/aw.png
new file mode 100755
index 00000000..a3579c2d
--- /dev/null
+++ b/static/flags/aw.png
Binary files differ
diff --git a/static/flags/ax.png b/static/flags/ax.png
new file mode 100755
index 00000000..1eea80a7
--- /dev/null
+++ b/static/flags/ax.png
Binary files differ
diff --git a/static/flags/az.png b/static/flags/az.png
new file mode 100755
index 00000000..4ee9fe5c
--- /dev/null
+++ b/static/flags/az.png
Binary files differ
diff --git a/static/flags/ba.png b/static/flags/ba.png
new file mode 100755
index 00000000..c7749924
--- /dev/null
+++ b/static/flags/ba.png
Binary files differ
diff --git a/static/flags/bb.png b/static/flags/bb.png
new file mode 100755
index 00000000..0df19c71
--- /dev/null
+++ b/static/flags/bb.png
Binary files differ
diff --git a/static/flags/bd.png b/static/flags/bd.png
new file mode 100755
index 00000000..076a8bf8
--- /dev/null
+++ b/static/flags/bd.png
Binary files differ
diff --git a/static/flags/be.png b/static/flags/be.png
new file mode 100755
index 00000000..d86ebc80
--- /dev/null
+++ b/static/flags/be.png
Binary files differ
diff --git a/static/flags/bf.png b/static/flags/bf.png
new file mode 100755
index 00000000..ab5ce8fe
--- /dev/null
+++ b/static/flags/bf.png
Binary files differ
diff --git a/static/flags/bg.png b/static/flags/bg.png
new file mode 100755
index 00000000..0469f060
--- /dev/null
+++ b/static/flags/bg.png
Binary files differ
diff --git a/static/flags/bh.png b/static/flags/bh.png
new file mode 100755
index 00000000..ea8ce687
--- /dev/null
+++ b/static/flags/bh.png
Binary files differ
diff --git a/static/flags/bi.png b/static/flags/bi.png
new file mode 100755
index 00000000..5cc2e30c
--- /dev/null
+++ b/static/flags/bi.png
Binary files differ
diff --git a/static/flags/bj.png b/static/flags/bj.png
new file mode 100755
index 00000000..1cc8b458
--- /dev/null
+++ b/static/flags/bj.png
Binary files differ
diff --git a/static/flags/bm.png b/static/flags/bm.png
new file mode 100755
index 00000000..c0c7aead
--- /dev/null
+++ b/static/flags/bm.png
Binary files differ
diff --git a/static/flags/bn.png b/static/flags/bn.png
new file mode 100755
index 00000000..8fb09849
--- /dev/null
+++ b/static/flags/bn.png
Binary files differ
diff --git a/static/flags/bo.png b/static/flags/bo.png
new file mode 100755
index 00000000..ce7ba522
--- /dev/null
+++ b/static/flags/bo.png
Binary files differ
diff --git a/static/flags/br.png b/static/flags/br.png
new file mode 100755
index 00000000..9b1a5538
--- /dev/null
+++ b/static/flags/br.png
Binary files differ
diff --git a/static/flags/bs.png b/static/flags/bs.png
new file mode 100755
index 00000000..639fa6cf
--- /dev/null
+++ b/static/flags/bs.png
Binary files differ
diff --git a/static/flags/bt.png b/static/flags/bt.png
new file mode 100755
index 00000000..1d512dff
--- /dev/null
+++ b/static/flags/bt.png
Binary files differ
diff --git a/static/flags/bv.png b/static/flags/bv.png
new file mode 100755
index 00000000..160b6b5b
--- /dev/null
+++ b/static/flags/bv.png
Binary files differ
diff --git a/static/flags/bw.png b/static/flags/bw.png
new file mode 100755
index 00000000..fcb10394
--- /dev/null
+++ b/static/flags/bw.png
Binary files differ
diff --git a/static/flags/by.png b/static/flags/by.png
new file mode 100755
index 00000000..504774ec
--- /dev/null
+++ b/static/flags/by.png
Binary files differ
diff --git a/static/flags/bz.png b/static/flags/bz.png
new file mode 100755
index 00000000..be63ee1c
--- /dev/null
+++ b/static/flags/bz.png
Binary files differ
diff --git a/static/flags/ca.png b/static/flags/ca.png
new file mode 100755
index 00000000..1f204193
--- /dev/null
+++ b/static/flags/ca.png
Binary files differ
diff --git a/static/flags/cc.png b/static/flags/cc.png
new file mode 100755
index 00000000..aed3d3b4
--- /dev/null
+++ b/static/flags/cc.png
Binary files differ
diff --git a/static/flags/cd.png b/static/flags/cd.png
new file mode 100755
index 00000000..a072ac26
--- /dev/null
+++ b/static/flags/cd.png
Binary files differ
diff --git a/static/flags/cf.png b/static/flags/cf.png
new file mode 100755
index 00000000..da687bdc
--- /dev/null
+++ b/static/flags/cf.png
Binary files differ
diff --git a/static/flags/cg.png b/static/flags/cg.png
new file mode 100755
index 00000000..a859792e
--- /dev/null
+++ b/static/flags/cg.png
Binary files differ
diff --git a/static/flags/ch.png b/static/flags/ch.png
new file mode 100755
index 00000000..242ec01a
--- /dev/null
+++ b/static/flags/ch.png
Binary files differ
diff --git a/static/flags/ci.png b/static/flags/ci.png
new file mode 100755
index 00000000..3f2c62eb
--- /dev/null
+++ b/static/flags/ci.png
Binary files differ
diff --git a/static/flags/ck.png b/static/flags/ck.png
new file mode 100755
index 00000000..746d3d6f
--- /dev/null
+++ b/static/flags/ck.png
Binary files differ
diff --git a/static/flags/cl.png b/static/flags/cl.png
new file mode 100755
index 00000000..29c6d61b
--- /dev/null
+++ b/static/flags/cl.png
Binary files differ
diff --git a/static/flags/cm.png b/static/flags/cm.png
new file mode 100755
index 00000000..f65c5bd5
--- /dev/null
+++ b/static/flags/cm.png
Binary files differ
diff --git a/static/flags/cn.png b/static/flags/cn.png
new file mode 100755
index 00000000..89144146
--- /dev/null
+++ b/static/flags/cn.png
Binary files differ
diff --git a/static/flags/co.png b/static/flags/co.png
new file mode 100755
index 00000000..a118ff4a
--- /dev/null
+++ b/static/flags/co.png
Binary files differ
diff --git a/static/flags/cr.png b/static/flags/cr.png
new file mode 100755
index 00000000..c7a37317
--- /dev/null
+++ b/static/flags/cr.png
Binary files differ
diff --git a/static/flags/cs.png b/static/flags/cs.png
new file mode 100755
index 00000000..8254790c
--- /dev/null
+++ b/static/flags/cs.png
Binary files differ
diff --git a/static/flags/cu.png b/static/flags/cu.png
new file mode 100755
index 00000000..083f1d61
--- /dev/null
+++ b/static/flags/cu.png
Binary files differ
diff --git a/static/flags/cv.png b/static/flags/cv.png
new file mode 100755
index 00000000..a63f7eaf
--- /dev/null
+++ b/static/flags/cv.png
Binary files differ
diff --git a/static/flags/cx.png b/static/flags/cx.png
new file mode 100755
index 00000000..48e31adb
--- /dev/null
+++ b/static/flags/cx.png
Binary files differ
diff --git a/static/flags/cy.png b/static/flags/cy.png
new file mode 100755
index 00000000..5b1ad6c0
--- /dev/null
+++ b/static/flags/cy.png
Binary files differ
diff --git a/static/flags/cz.png b/static/flags/cz.png
new file mode 100755
index 00000000..c8403dd2
--- /dev/null
+++ b/static/flags/cz.png
Binary files differ
diff --git a/static/flags/de.png b/static/flags/de.png
new file mode 100755
index 00000000..ac4a9773
--- /dev/null
+++ b/static/flags/de.png
Binary files differ
diff --git a/static/flags/dj.png b/static/flags/dj.png
new file mode 100755
index 00000000..582af364
--- /dev/null
+++ b/static/flags/dj.png
Binary files differ
diff --git a/static/flags/dk.png b/static/flags/dk.png
new file mode 100755
index 00000000..e2993d3c
--- /dev/null
+++ b/static/flags/dk.png
Binary files differ
diff --git a/static/flags/dm.png b/static/flags/dm.png
new file mode 100755
index 00000000..5fbffcba
--- /dev/null
+++ b/static/flags/dm.png
Binary files differ
diff --git a/static/flags/do.png b/static/flags/do.png
new file mode 100755
index 00000000..5a04932d
--- /dev/null
+++ b/static/flags/do.png
Binary files differ
diff --git a/static/flags/dz.png b/static/flags/dz.png
new file mode 100755
index 00000000..335c2391
--- /dev/null
+++ b/static/flags/dz.png
Binary files differ
diff --git a/static/flags/ec.png b/static/flags/ec.png
new file mode 100755
index 00000000..0caa0b1e
--- /dev/null
+++ b/static/flags/ec.png
Binary files differ
diff --git a/static/flags/ee.png b/static/flags/ee.png
new file mode 100755
index 00000000..0c82efb7
--- /dev/null
+++ b/static/flags/ee.png
Binary files differ
diff --git a/static/flags/eg.png b/static/flags/eg.png
new file mode 100755
index 00000000..8a3f7a10
--- /dev/null
+++ b/static/flags/eg.png
Binary files differ
diff --git a/static/flags/eh.png b/static/flags/eh.png
new file mode 100755
index 00000000..90a1195b
--- /dev/null
+++ b/static/flags/eh.png
Binary files differ
diff --git a/static/flags/er.png b/static/flags/er.png
new file mode 100755
index 00000000..13065ae9
--- /dev/null
+++ b/static/flags/er.png
Binary files differ
diff --git a/static/flags/es.png b/static/flags/es.png
new file mode 100755
index 00000000..c2de2d71
--- /dev/null
+++ b/static/flags/es.png
Binary files differ
diff --git a/static/flags/et.png b/static/flags/et.png
new file mode 100755
index 00000000..2e893fa0
--- /dev/null
+++ b/static/flags/et.png
Binary files differ
diff --git a/static/flags/fi.png b/static/flags/fi.png
new file mode 100755
index 00000000..14ec091b
--- /dev/null
+++ b/static/flags/fi.png
Binary files differ
diff --git a/static/flags/fj.png b/static/flags/fj.png
new file mode 100755
index 00000000..cee99889
--- /dev/null
+++ b/static/flags/fj.png
Binary files differ
diff --git a/static/flags/fk.png b/static/flags/fk.png
new file mode 100755
index 00000000..ceaeb27d
--- /dev/null
+++ b/static/flags/fk.png
Binary files differ
diff --git a/static/flags/fm.png b/static/flags/fm.png
new file mode 100755
index 00000000..066bb247
--- /dev/null
+++ b/static/flags/fm.png
Binary files differ
diff --git a/static/flags/fo.png b/static/flags/fo.png
new file mode 100755
index 00000000..cbceb809
--- /dev/null
+++ b/static/flags/fo.png
Binary files differ
diff --git a/static/flags/fr.png b/static/flags/fr.png
new file mode 100755
index 00000000..8332c4ec
--- /dev/null
+++ b/static/flags/fr.png
Binary files differ
diff --git a/static/flags/ga.png b/static/flags/ga.png
new file mode 100755
index 00000000..0e0d4343
--- /dev/null
+++ b/static/flags/ga.png
Binary files differ
diff --git a/static/flags/gb.png b/static/flags/gb.png
new file mode 100755
index 00000000..5c4d301a
--- /dev/null
+++ b/static/flags/gb.png
Binary files differ
diff --git a/static/flags/gd.png b/static/flags/gd.png
new file mode 100755
index 00000000..9ab57f54
--- /dev/null
+++ b/static/flags/gd.png
Binary files differ
diff --git a/static/flags/ge.png b/static/flags/ge.png
new file mode 100755
index 00000000..728d9707
--- /dev/null
+++ b/static/flags/ge.png
Binary files differ
diff --git a/static/flags/gh.png b/static/flags/gh.png
new file mode 100755
index 00000000..4e2f8965
--- /dev/null
+++ b/static/flags/gh.png
Binary files differ
diff --git a/static/flags/gi.png b/static/flags/gi.png
new file mode 100755
index 00000000..e76797f6
--- /dev/null
+++ b/static/flags/gi.png
Binary files differ
diff --git a/static/flags/gl.png b/static/flags/gl.png
new file mode 100755
index 00000000..ef12a73b
--- /dev/null
+++ b/static/flags/gl.png
Binary files differ
diff --git a/static/flags/gm.png b/static/flags/gm.png
new file mode 100755
index 00000000..0720b667
--- /dev/null
+++ b/static/flags/gm.png
Binary files differ
diff --git a/static/flags/gn.png b/static/flags/gn.png
new file mode 100755
index 00000000..ea660b01
--- /dev/null
+++ b/static/flags/gn.png
Binary files differ
diff --git a/static/flags/gp.png b/static/flags/gp.png
new file mode 100755
index 00000000..dbb086d0
--- /dev/null
+++ b/static/flags/gp.png
Binary files differ
diff --git a/static/flags/gq.png b/static/flags/gq.png
new file mode 100755
index 00000000..ebe20a28
--- /dev/null
+++ b/static/flags/gq.png
Binary files differ
diff --git a/static/flags/gr.png b/static/flags/gr.png
new file mode 100755
index 00000000..8651ade7
--- /dev/null
+++ b/static/flags/gr.png
Binary files differ
diff --git a/static/flags/gs.png b/static/flags/gs.png
new file mode 100755
index 00000000..7ef0bf59
--- /dev/null
+++ b/static/flags/gs.png
Binary files differ
diff --git a/static/flags/gt.png b/static/flags/gt.png
new file mode 100755
index 00000000..c43a70d3
--- /dev/null
+++ b/static/flags/gt.png
Binary files differ
diff --git a/static/flags/gu.png b/static/flags/gu.png
new file mode 100755
index 00000000..92f37c05
--- /dev/null
+++ b/static/flags/gu.png
Binary files differ
diff --git a/static/flags/gw.png b/static/flags/gw.png
new file mode 100755
index 00000000..b37bcf06
--- /dev/null
+++ b/static/flags/gw.png
Binary files differ
diff --git a/static/flags/gy.png b/static/flags/gy.png
new file mode 100755
index 00000000..22cbe2f5
--- /dev/null
+++ b/static/flags/gy.png
Binary files differ
diff --git a/static/flags/hk.png b/static/flags/hk.png
new file mode 100755
index 00000000..d5c380ca
--- /dev/null
+++ b/static/flags/hk.png
Binary files differ
diff --git a/static/flags/hn.png b/static/flags/hn.png
new file mode 100755
index 00000000..96f83885
--- /dev/null
+++ b/static/flags/hn.png
Binary files differ
diff --git a/static/flags/hr.png b/static/flags/hr.png
new file mode 100755
index 00000000..696b5154
--- /dev/null
+++ b/static/flags/hr.png
Binary files differ
diff --git a/static/flags/ht.png b/static/flags/ht.png
new file mode 100755
index 00000000..416052af
--- /dev/null
+++ b/static/flags/ht.png
Binary files differ
diff --git a/static/flags/hu.png b/static/flags/hu.png
new file mode 100755
index 00000000..7baafe44
--- /dev/null
+++ b/static/flags/hu.png
Binary files differ
diff --git a/static/flags/id.png b/static/flags/id.png
new file mode 100755
index 00000000..c6bc0faf
--- /dev/null
+++ b/static/flags/id.png
Binary files differ
diff --git a/static/flags/ie.png b/static/flags/ie.png
new file mode 100755
index 00000000..26baa31e
--- /dev/null
+++ b/static/flags/ie.png
Binary files differ
diff --git a/static/flags/il.png b/static/flags/il.png
new file mode 100755
index 00000000..2ca772d0
--- /dev/null
+++ b/static/flags/il.png
Binary files differ
diff --git a/static/flags/in.png b/static/flags/in.png
new file mode 100755
index 00000000..e4d7e81a
--- /dev/null
+++ b/static/flags/in.png
Binary files differ
diff --git a/static/flags/io.png b/static/flags/io.png
new file mode 100755
index 00000000..3e74b6a3
--- /dev/null
+++ b/static/flags/io.png
Binary files differ
diff --git a/static/flags/iq.png b/static/flags/iq.png
new file mode 100755
index 00000000..878a3514
--- /dev/null
+++ b/static/flags/iq.png
Binary files differ
diff --git a/static/flags/ir.png b/static/flags/ir.png
new file mode 100755
index 00000000..c5fd136a
--- /dev/null
+++ b/static/flags/ir.png
Binary files differ
diff --git a/static/flags/is.png b/static/flags/is.png
new file mode 100755
index 00000000..b8f6d0f0
--- /dev/null
+++ b/static/flags/is.png
Binary files differ
diff --git a/static/flags/it.png b/static/flags/it.png
new file mode 100755
index 00000000..89692f74
--- /dev/null
+++ b/static/flags/it.png
Binary files differ
diff --git a/static/flags/jm.png b/static/flags/jm.png
new file mode 100755
index 00000000..7be119e0
--- /dev/null
+++ b/static/flags/jm.png
Binary files differ
diff --git a/static/flags/jo.png b/static/flags/jo.png
new file mode 100755
index 00000000..11bd4972
--- /dev/null
+++ b/static/flags/jo.png
Binary files differ
diff --git a/static/flags/jp.png b/static/flags/jp.png
new file mode 100755
index 00000000..325fbad3
--- /dev/null
+++ b/static/flags/jp.png
Binary files differ
diff --git a/static/flags/ke.png b/static/flags/ke.png
new file mode 100755
index 00000000..51879adf
--- /dev/null
+++ b/static/flags/ke.png
Binary files differ
diff --git a/static/flags/kg.png b/static/flags/kg.png
new file mode 100755
index 00000000..0a818f67
--- /dev/null
+++ b/static/flags/kg.png
Binary files differ
diff --git a/static/flags/kh.png b/static/flags/kh.png
new file mode 100755
index 00000000..30f6bb1b
--- /dev/null
+++ b/static/flags/kh.png
Binary files differ
diff --git a/static/flags/ki.png b/static/flags/ki.png
new file mode 100755
index 00000000..2dcce4b3
--- /dev/null
+++ b/static/flags/ki.png
Binary files differ
diff --git a/static/flags/km.png b/static/flags/km.png
new file mode 100755
index 00000000..812b2f56
--- /dev/null
+++ b/static/flags/km.png
Binary files differ
diff --git a/static/flags/kn.png b/static/flags/kn.png
new file mode 100755
index 00000000..febd5b48
--- /dev/null
+++ b/static/flags/kn.png
Binary files differ
diff --git a/static/flags/kp.png b/static/flags/kp.png
new file mode 100755
index 00000000..d3d509aa
--- /dev/null
+++ b/static/flags/kp.png
Binary files differ
diff --git a/static/flags/kr.png b/static/flags/kr.png
new file mode 100755
index 00000000..9c0a78eb
--- /dev/null
+++ b/static/flags/kr.png
Binary files differ
diff --git a/static/flags/kw.png b/static/flags/kw.png
new file mode 100755
index 00000000..96546da3
--- /dev/null
+++ b/static/flags/kw.png
Binary files differ
diff --git a/static/flags/ky.png b/static/flags/ky.png
new file mode 100755
index 00000000..15c5f8e4
--- /dev/null
+++ b/static/flags/ky.png
Binary files differ
diff --git a/static/flags/kz.png b/static/flags/kz.png
new file mode 100755
index 00000000..45a8c887
--- /dev/null
+++ b/static/flags/kz.png
Binary files differ
diff --git a/static/flags/la.png b/static/flags/la.png
new file mode 100755
index 00000000..e28acd01
--- /dev/null
+++ b/static/flags/la.png
Binary files differ
diff --git a/static/flags/lb.png b/static/flags/lb.png
new file mode 100755
index 00000000..d0d452bf
--- /dev/null
+++ b/static/flags/lb.png
Binary files differ
diff --git a/static/flags/lc.png b/static/flags/lc.png
new file mode 100755
index 00000000..8fc12b4a
--- /dev/null
+++ b/static/flags/lc.png
Binary files differ
diff --git a/static/flags/li.png b/static/flags/li.png
new file mode 100755
index 00000000..6469909c
--- /dev/null
+++ b/static/flags/li.png
Binary files differ
diff --git a/static/flags/lk.png b/static/flags/lk.png
new file mode 100755
index 00000000..088aad6d
--- /dev/null
+++ b/static/flags/lk.png
Binary files differ
diff --git a/static/flags/lr.png b/static/flags/lr.png
new file mode 100755
index 00000000..89a5bc7e
--- /dev/null
+++ b/static/flags/lr.png
Binary files differ
diff --git a/static/flags/ls.png b/static/flags/ls.png
new file mode 100755
index 00000000..33fdef10
--- /dev/null
+++ b/static/flags/ls.png
Binary files differ
diff --git a/static/flags/lt.png b/static/flags/lt.png
new file mode 100755
index 00000000..c8ef0da0
--- /dev/null
+++ b/static/flags/lt.png
Binary files differ
diff --git a/static/flags/lu.png b/static/flags/lu.png
new file mode 100755
index 00000000..4cabba98
--- /dev/null
+++ b/static/flags/lu.png
Binary files differ
diff --git a/static/flags/lv.png b/static/flags/lv.png
new file mode 100755
index 00000000..49b69981
--- /dev/null
+++ b/static/flags/lv.png
Binary files differ
diff --git a/static/flags/ly.png b/static/flags/ly.png
new file mode 100755
index 00000000..b163a9f8
--- /dev/null
+++ b/static/flags/ly.png
Binary files differ
diff --git a/static/flags/ma.png b/static/flags/ma.png
new file mode 100755
index 00000000..f3867702
--- /dev/null
+++ b/static/flags/ma.png
Binary files differ
diff --git a/static/flags/mc.png b/static/flags/mc.png
new file mode 100755
index 00000000..1aa830f1
--- /dev/null
+++ b/static/flags/mc.png
Binary files differ
diff --git a/static/flags/md.png b/static/flags/md.png
new file mode 100755
index 00000000..4e92c189
--- /dev/null
+++ b/static/flags/md.png
Binary files differ
diff --git a/static/flags/mg.png b/static/flags/mg.png
new file mode 100755
index 00000000..d2715b3d
--- /dev/null
+++ b/static/flags/mg.png
Binary files differ
diff --git a/static/flags/mh.png b/static/flags/mh.png
new file mode 100755
index 00000000..fb523a8c
--- /dev/null
+++ b/static/flags/mh.png
Binary files differ
diff --git a/static/flags/mk.png b/static/flags/mk.png
new file mode 100755
index 00000000..db173aaf
--- /dev/null
+++ b/static/flags/mk.png
Binary files differ
diff --git a/static/flags/ml.png b/static/flags/ml.png
new file mode 100755
index 00000000..2cec8ba4
--- /dev/null
+++ b/static/flags/ml.png
Binary files differ
diff --git a/static/flags/mm.png b/static/flags/mm.png
new file mode 100755
index 00000000..f464f67f
--- /dev/null
+++ b/static/flags/mm.png
Binary files differ
diff --git a/static/flags/mn.png b/static/flags/mn.png
new file mode 100755
index 00000000..9396355d
--- /dev/null
+++ b/static/flags/mn.png
Binary files differ
diff --git a/static/flags/mo.png b/static/flags/mo.png
new file mode 100755
index 00000000..deb801dd
--- /dev/null
+++ b/static/flags/mo.png
Binary files differ
diff --git a/static/flags/mp.png b/static/flags/mp.png
new file mode 100755
index 00000000..298d588b
--- /dev/null
+++ b/static/flags/mp.png
Binary files differ
diff --git a/static/flags/mq.png b/static/flags/mq.png
new file mode 100755
index 00000000..010143b3
--- /dev/null
+++ b/static/flags/mq.png
Binary files differ
diff --git a/static/flags/mr.png b/static/flags/mr.png
new file mode 100755
index 00000000..319546b1
--- /dev/null
+++ b/static/flags/mr.png
Binary files differ
diff --git a/static/flags/ms.png b/static/flags/ms.png
new file mode 100755
index 00000000..d4cbb433
--- /dev/null
+++ b/static/flags/ms.png
Binary files differ
diff --git a/static/flags/mt.png b/static/flags/mt.png
new file mode 100755
index 00000000..00af9487
--- /dev/null
+++ b/static/flags/mt.png
Binary files differ
diff --git a/static/flags/mu.png b/static/flags/mu.png
new file mode 100755
index 00000000..b7fdce1b
--- /dev/null
+++ b/static/flags/mu.png
Binary files differ
diff --git a/static/flags/mv.png b/static/flags/mv.png
new file mode 100755
index 00000000..5073d9ec
--- /dev/null
+++ b/static/flags/mv.png
Binary files differ
diff --git a/static/flags/mw.png b/static/flags/mw.png
new file mode 100755
index 00000000..13886e9f
--- /dev/null
+++ b/static/flags/mw.png
Binary files differ
diff --git a/static/flags/mx.png b/static/flags/mx.png
new file mode 100755
index 00000000..5bc58ab3
--- /dev/null
+++ b/static/flags/mx.png
Binary files differ
diff --git a/static/flags/my.png b/static/flags/my.png
new file mode 100755
index 00000000..9034cbab
--- /dev/null
+++ b/static/flags/my.png
Binary files differ
diff --git a/static/flags/mz.png b/static/flags/mz.png
new file mode 100755
index 00000000..76405e06
--- /dev/null
+++ b/static/flags/mz.png
Binary files differ
diff --git a/static/flags/na.png b/static/flags/na.png
new file mode 100755
index 00000000..63358c67
--- /dev/null
+++ b/static/flags/na.png
Binary files differ
diff --git a/static/flags/nc.png b/static/flags/nc.png
new file mode 100755
index 00000000..2cad2837
--- /dev/null
+++ b/static/flags/nc.png
Binary files differ
diff --git a/static/flags/ne.png b/static/flags/ne.png
new file mode 100755
index 00000000..d85f424f
--- /dev/null
+++ b/static/flags/ne.png
Binary files differ
diff --git a/static/flags/nf.png b/static/flags/nf.png
new file mode 100755
index 00000000..f9bcdda1
--- /dev/null
+++ b/static/flags/nf.png
Binary files differ
diff --git a/static/flags/ng.png b/static/flags/ng.png
new file mode 100755
index 00000000..3eea2e02
--- /dev/null
+++ b/static/flags/ng.png
Binary files differ
diff --git a/static/flags/ni.png b/static/flags/ni.png
new file mode 100755
index 00000000..3969aaaa
--- /dev/null
+++ b/static/flags/ni.png
Binary files differ
diff --git a/static/flags/nl.png b/static/flags/nl.png
new file mode 100755
index 00000000..fe44791e
--- /dev/null
+++ b/static/flags/nl.png
Binary files differ
diff --git a/static/flags/no.png b/static/flags/no.png
new file mode 100755
index 00000000..160b6b5b
--- /dev/null
+++ b/static/flags/no.png
Binary files differ
diff --git a/static/flags/np.png b/static/flags/np.png
new file mode 100755
index 00000000..aeb058b7
--- /dev/null
+++ b/static/flags/np.png
Binary files differ
diff --git a/static/flags/nr.png b/static/flags/nr.png
new file mode 100755
index 00000000..705fc337
--- /dev/null
+++ b/static/flags/nr.png
Binary files differ
diff --git a/static/flags/nu.png b/static/flags/nu.png
new file mode 100755
index 00000000..c3ce4aed
--- /dev/null
+++ b/static/flags/nu.png
Binary files differ
diff --git a/static/flags/nz.png b/static/flags/nz.png
new file mode 100755
index 00000000..10d6306d
--- /dev/null
+++ b/static/flags/nz.png
Binary files differ
diff --git a/static/flags/om.png b/static/flags/om.png
new file mode 100755
index 00000000..2ffba7e8
--- /dev/null
+++ b/static/flags/om.png
Binary files differ
diff --git a/static/flags/pa.png b/static/flags/pa.png
new file mode 100755
index 00000000..9b2ee9a7
--- /dev/null
+++ b/static/flags/pa.png
Binary files differ
diff --git a/static/flags/pe.png b/static/flags/pe.png
new file mode 100755
index 00000000..62a04977
--- /dev/null
+++ b/static/flags/pe.png
Binary files differ
diff --git a/static/flags/pf.png b/static/flags/pf.png
new file mode 100755
index 00000000..771a0f65
--- /dev/null
+++ b/static/flags/pf.png
Binary files differ
diff --git a/static/flags/pg.png b/static/flags/pg.png
new file mode 100755
index 00000000..10d62334
--- /dev/null
+++ b/static/flags/pg.png
Binary files differ
diff --git a/static/flags/ph.png b/static/flags/ph.png
new file mode 100755
index 00000000..b89e1593
--- /dev/null
+++ b/static/flags/ph.png
Binary files differ
diff --git a/static/flags/pk.png b/static/flags/pk.png
new file mode 100755
index 00000000..e9df70ca
--- /dev/null
+++ b/static/flags/pk.png
Binary files differ
diff --git a/static/flags/pl.png b/static/flags/pl.png
new file mode 100755
index 00000000..d413d010
--- /dev/null
+++ b/static/flags/pl.png
Binary files differ
diff --git a/static/flags/pm.png b/static/flags/pm.png
new file mode 100755
index 00000000..ba91d2c7
--- /dev/null
+++ b/static/flags/pm.png
Binary files differ
diff --git a/static/flags/pn.png b/static/flags/pn.png
new file mode 100755
index 00000000..aa9344f5
--- /dev/null
+++ b/static/flags/pn.png
Binary files differ
diff --git a/static/flags/pr.png b/static/flags/pr.png
new file mode 100755
index 00000000..82d9130d
--- /dev/null
+++ b/static/flags/pr.png
Binary files differ
diff --git a/static/flags/ps.png b/static/flags/ps.png
new file mode 100755
index 00000000..f5f54776
--- /dev/null
+++ b/static/flags/ps.png
Binary files differ
diff --git a/static/flags/pt.png b/static/flags/pt.png
new file mode 100755
index 00000000..ece79801
--- /dev/null
+++ b/static/flags/pt.png
Binary files differ
diff --git a/static/flags/pw.png b/static/flags/pw.png
new file mode 100755
index 00000000..6178b254
--- /dev/null
+++ b/static/flags/pw.png
Binary files differ
diff --git a/static/flags/py.png b/static/flags/py.png
new file mode 100755
index 00000000..cb8723c0
--- /dev/null
+++ b/static/flags/py.png
Binary files differ
diff --git a/static/flags/qa.png b/static/flags/qa.png
new file mode 100755
index 00000000..ed4c621f
--- /dev/null
+++ b/static/flags/qa.png
Binary files differ
diff --git a/static/flags/ro.png b/static/flags/ro.png
new file mode 100755
index 00000000..57e74a65
--- /dev/null
+++ b/static/flags/ro.png
Binary files differ
diff --git a/static/flags/ru.png b/static/flags/ru.png
new file mode 100755
index 00000000..47da4214
--- /dev/null
+++ b/static/flags/ru.png
Binary files differ
diff --git a/static/flags/rw.png b/static/flags/rw.png
new file mode 100755
index 00000000..53564917
--- /dev/null
+++ b/static/flags/rw.png
Binary files differ
diff --git a/static/flags/sa.png b/static/flags/sa.png
new file mode 100755
index 00000000..b4641c7e
--- /dev/null
+++ b/static/flags/sa.png
Binary files differ
diff --git a/static/flags/sb.png b/static/flags/sb.png
new file mode 100755
index 00000000..a9937ccf
--- /dev/null
+++ b/static/flags/sb.png
Binary files differ
diff --git a/static/flags/sc.png b/static/flags/sc.png
new file mode 100755
index 00000000..39ee3718
--- /dev/null
+++ b/static/flags/sc.png
Binary files differ
diff --git a/static/flags/sd.png b/static/flags/sd.png
new file mode 100755
index 00000000..eaab69eb
--- /dev/null
+++ b/static/flags/sd.png
Binary files differ
diff --git a/static/flags/se.png b/static/flags/se.png
new file mode 100755
index 00000000..1994653d
--- /dev/null
+++ b/static/flags/se.png
Binary files differ
diff --git a/static/flags/sg.png b/static/flags/sg.png
new file mode 100755
index 00000000..dd34d612
--- /dev/null
+++ b/static/flags/sg.png
Binary files differ
diff --git a/static/flags/sh.png b/static/flags/sh.png
new file mode 100755
index 00000000..4b1d2a29
--- /dev/null
+++ b/static/flags/sh.png
Binary files differ
diff --git a/static/flags/si.png b/static/flags/si.png
new file mode 100755
index 00000000..bb1476ff
--- /dev/null
+++ b/static/flags/si.png
Binary files differ
diff --git a/static/flags/sk.png b/static/flags/sk.png
new file mode 100755
index 00000000..7ccbc827
--- /dev/null
+++ b/static/flags/sk.png
Binary files differ
diff --git a/static/flags/sl.png b/static/flags/sl.png
new file mode 100755
index 00000000..12d812d2
--- /dev/null
+++ b/static/flags/sl.png
Binary files differ
diff --git a/static/flags/sm.png b/static/flags/sm.png
new file mode 100755
index 00000000..3df2fdcf
--- /dev/null
+++ b/static/flags/sm.png
Binary files differ
diff --git a/static/flags/sn.png b/static/flags/sn.png
new file mode 100755
index 00000000..eabb71db
--- /dev/null
+++ b/static/flags/sn.png
Binary files differ
diff --git a/static/flags/so.png b/static/flags/so.png
new file mode 100755
index 00000000..4a1ea4b2
--- /dev/null
+++ b/static/flags/so.png
Binary files differ
diff --git a/static/flags/sr.png b/static/flags/sr.png
new file mode 100755
index 00000000..5eff9271
--- /dev/null
+++ b/static/flags/sr.png
Binary files differ
diff --git a/static/flags/st.png b/static/flags/st.png
new file mode 100755
index 00000000..2978557b
--- /dev/null
+++ b/static/flags/st.png
Binary files differ
diff --git a/static/flags/sv.png b/static/flags/sv.png
new file mode 100755
index 00000000..24987990
--- /dev/null
+++ b/static/flags/sv.png
Binary files differ
diff --git a/static/flags/sy.png b/static/flags/sy.png
new file mode 100755
index 00000000..f5ce30dc
--- /dev/null
+++ b/static/flags/sy.png
Binary files differ
diff --git a/static/flags/sz.png b/static/flags/sz.png
new file mode 100755
index 00000000..914ee861
--- /dev/null
+++ b/static/flags/sz.png
Binary files differ
diff --git a/static/flags/tc.png b/static/flags/tc.png
new file mode 100755
index 00000000..8fc1156b
--- /dev/null
+++ b/static/flags/tc.png
Binary files differ
diff --git a/static/flags/td.png b/static/flags/td.png
new file mode 100755
index 00000000..667f21fd
--- /dev/null
+++ b/static/flags/td.png
Binary files differ
diff --git a/static/flags/tf.png b/static/flags/tf.png
new file mode 100755
index 00000000..80529a43
--- /dev/null
+++ b/static/flags/tf.png
Binary files differ
diff --git a/static/flags/tg.png b/static/flags/tg.png
new file mode 100755
index 00000000..3aa00ad4
--- /dev/null
+++ b/static/flags/tg.png
Binary files differ
diff --git a/static/flags/th.png b/static/flags/th.png
new file mode 100755
index 00000000..dd8ba917
--- /dev/null
+++ b/static/flags/th.png
Binary files differ
diff --git a/static/flags/tj.png b/static/flags/tj.png
new file mode 100755
index 00000000..617bf645
--- /dev/null
+++ b/static/flags/tj.png
Binary files differ
diff --git a/static/flags/tk.png b/static/flags/tk.png
new file mode 100755
index 00000000..67b8c8cb
--- /dev/null
+++ b/static/flags/tk.png
Binary files differ
diff --git a/static/flags/tl.png b/static/flags/tl.png
new file mode 100755
index 00000000..77da181e
--- /dev/null
+++ b/static/flags/tl.png
Binary files differ
diff --git a/static/flags/tm.png b/static/flags/tm.png
new file mode 100755
index 00000000..828020ec
--- /dev/null
+++ b/static/flags/tm.png
Binary files differ
diff --git a/static/flags/tn.png b/static/flags/tn.png
new file mode 100755
index 00000000..183cdd3d
--- /dev/null
+++ b/static/flags/tn.png
Binary files differ
diff --git a/static/flags/to.png b/static/flags/to.png
new file mode 100755
index 00000000..f89b8ba7
--- /dev/null
+++ b/static/flags/to.png
Binary files differ
diff --git a/static/flags/tr.png b/static/flags/tr.png
new file mode 100755
index 00000000..be32f77e
--- /dev/null
+++ b/static/flags/tr.png
Binary files differ
diff --git a/static/flags/tt.png b/static/flags/tt.png
new file mode 100755
index 00000000..2a11c1e2
--- /dev/null
+++ b/static/flags/tt.png
Binary files differ
diff --git a/static/flags/tv.png b/static/flags/tv.png
new file mode 100755
index 00000000..28274c5f
--- /dev/null
+++ b/static/flags/tv.png
Binary files differ
diff --git a/static/flags/tw.png b/static/flags/tw.png
new file mode 100755
index 00000000..f31c654c
--- /dev/null
+++ b/static/flags/tw.png
Binary files differ
diff --git a/static/flags/tz.png b/static/flags/tz.png
new file mode 100755
index 00000000..c00ff796
--- /dev/null
+++ b/static/flags/tz.png
Binary files differ
diff --git a/static/flags/ua.png b/static/flags/ua.png
new file mode 100755
index 00000000..09563a21
--- /dev/null
+++ b/static/flags/ua.png
Binary files differ
diff --git a/static/flags/ug.png b/static/flags/ug.png
new file mode 100755
index 00000000..33f4affa
--- /dev/null
+++ b/static/flags/ug.png
Binary files differ
diff --git a/static/flags/um.png b/static/flags/um.png
new file mode 100755
index 00000000..c1dd9654
--- /dev/null
+++ b/static/flags/um.png
Binary files differ
diff --git a/static/flags/us.png b/static/flags/us.png
new file mode 100755
index 00000000..10f451fe
--- /dev/null
+++ b/static/flags/us.png
Binary files differ
diff --git a/static/flags/uy.png b/static/flags/uy.png
new file mode 100755
index 00000000..31d948a0
--- /dev/null
+++ b/static/flags/uy.png
Binary files differ
diff --git a/static/flags/uz.png b/static/flags/uz.png
new file mode 100755
index 00000000..fef5dc17
--- /dev/null
+++ b/static/flags/uz.png
Binary files differ
diff --git a/static/flags/va.png b/static/flags/va.png
new file mode 100755
index 00000000..b31eaf22
--- /dev/null
+++ b/static/flags/va.png
Binary files differ
diff --git a/static/flags/vc.png b/static/flags/vc.png
new file mode 100755
index 00000000..8fa17b06
--- /dev/null
+++ b/static/flags/vc.png
Binary files differ
diff --git a/static/flags/ve.png b/static/flags/ve.png
new file mode 100755
index 00000000..00c90f9a
--- /dev/null
+++ b/static/flags/ve.png
Binary files differ
diff --git a/static/flags/vg.png b/static/flags/vg.png
new file mode 100755
index 00000000..41569079
--- /dev/null
+++ b/static/flags/vg.png
Binary files differ
diff --git a/static/flags/vi.png b/static/flags/vi.png
new file mode 100755
index 00000000..ed26915a
--- /dev/null
+++ b/static/flags/vi.png
Binary files differ
diff --git a/static/flags/vn.png b/static/flags/vn.png
new file mode 100755
index 00000000..ec7cd48a
--- /dev/null
+++ b/static/flags/vn.png
Binary files differ
diff --git a/static/flags/vu.png b/static/flags/vu.png
new file mode 100755
index 00000000..b3397bc6
--- /dev/null
+++ b/static/flags/vu.png
Binary files differ
diff --git a/static/flags/wf.png b/static/flags/wf.png
new file mode 100755
index 00000000..9f955873
--- /dev/null
+++ b/static/flags/wf.png
Binary files differ
diff --git a/static/flags/ws.png b/static/flags/ws.png
new file mode 100755
index 00000000..c1695080
--- /dev/null
+++ b/static/flags/ws.png
Binary files differ
diff --git a/static/flags/ye.png b/static/flags/ye.png
new file mode 100755
index 00000000..468dfad0
--- /dev/null
+++ b/static/flags/ye.png
Binary files differ
diff --git a/static/flags/yt.png b/static/flags/yt.png
new file mode 100755
index 00000000..c298f378
--- /dev/null
+++ b/static/flags/yt.png
Binary files differ
diff --git a/static/flags/za.png b/static/flags/za.png
new file mode 100755
index 00000000..57c58e21
--- /dev/null
+++ b/static/flags/za.png
Binary files differ
diff --git a/static/flags/zm.png b/static/flags/zm.png
new file mode 100755
index 00000000..c25b07be
--- /dev/null
+++ b/static/flags/zm.png
Binary files differ
diff --git a/static/flags/zw.png b/static/flags/zw.png
new file mode 100755
index 00000000..53c97259
--- /dev/null
+++ b/static/flags/zw.png
Binary files differ
diff --git a/stylesheets/style.css b/stylesheets/style.css
index fbb5370f..f75cfadb 100644
--- a/stylesheets/style.css
+++ b/stylesheets/style.css
@@ -125,23 +125,22 @@ div.banner a:hover {
text-decoration: none;
}
img.banner {
- float: none;
+ display: block;
border: 1px solid #a9a9a9;
margin: 12px auto 0 auto;
}
-img {
+img.post-image {
display: block;
float: left;
margin: 10px 20px;
border: none;
}
-div.post img {
+div.post img.post-image {
padding: 5px;
margin: 5px 20px 0 0;
}
div.post img.icon {
display: inline;
- float: none;
margin: 0 5px;
padding: 0;
}
diff --git a/templates/post_reply.html b/templates/post_reply.html
index b0391f19..518a8edf 100644
--- a/templates/post_reply.html
+++ b/templates/post_reply.html
@@ -28,6 +28,11 @@
{% if post.mod and post.mod|hasPermission(config.mod.show_ip, board.uri) %}
[<a style="margin:0;" href="?/IP/{{ post.ip }}">{{ post.ip }}</a>]
{% endif %}
+ {% if config.display_flags and post.modifiers.flag %}
+ <img class="flag" src="{{ config.uri_flags|sprintf(post.modifiers.flag) }}"
+ style="{% if post.modifiers['flag style'] %}{{ post.modifiers['flag style'] }}{% else %}{{ config.flag_style }}{% endif %}"
+ {% if post.modifiers['flag alt'] %}title="{{ post.modifiers['flag alt'] | e('html_attr') }}"{% endif %}>
+ {% endif %}
<time datetime="{{ post.time|date('%Y-%m-%dT%H:%M:%S') }}{{ timezone() }}">{{ post.time|date(config.post_date) }}</time>
</label>
{% if config.poster_ids %}
@@ -49,7 +54,7 @@
{% if post.embed %}
{{ post.embed }}
{% elseif post.file == 'deleted' %}
- <img src="{{ config.image_deleted }}" alt="" />
+ <img class="post-image deleted" src="{{ config.image_deleted }}" alt="" />
{% elseif post.file and post.file %}
<p class="fileinfo">File: <a href="{{ config.uri_img }}{{ post.file }}">{{ post.file }}</a> <span class="unimportant">
(
@@ -87,7 +92,7 @@
</span>
</p>
<a href="{{ config.uri_img }}{{ post.file }}" target="_blank"{% if post.thumb == 'file' %} class="file"{% endif %}>
- <img src="
+ <img class="post-image" src="
{% if post.thumb == 'file' %}
{{ config.root }}
{% if config.file_icons[post.filename|extension] %}
@@ -99,12 +104,15 @@
{{ config.root }}{{ config.spoiler_image }}
{% else %}
{{ config.uri_thumb }}{{ post.thumb }}
- {% endif %}" style="width:{{ post.thumbx }}px;height:{{ post.thumby }}px" alt="" />
+ {% endif %}" style="width:{{ post.thumbwidth }}px;height:{{ post.thumbheight }}px" alt="" />
</a>
{% endif %}
{{ post.postControls }}
<div class="body">
{% endfilter %}{% if index %}{{ post.body|truncate_body(post.link) }}{% else %}{{ post.body }}{% endif %}{% filter remove_whitespace %}
+ {% if post.modifiers['ban message'] %}
+ {{ config.mod.ban_message|sprintf(post.modifiers['ban message']) }}
+ {% endif %}
</div>
</div>
<br/>
diff --git a/templates/post_thread.html b/templates/post_thread.html
index 60218acb..dc788082 100644
--- a/templates/post_thread.html
+++ b/templates/post_thread.html
@@ -6,7 +6,7 @@
{% if post.embed %}
{{ post.embed }}
{% elseif post.file == 'deleted' %}
- <img src="{{ config.image_deleted }}" alt="" />
+ <img class="post-image deleted" src="{{ config.image_deleted }}" alt="" />
{% elseif post.file and post.file %}
<p class="fileinfo">{% trans %}File:{% endtrans %} <a href="{{ config.uri_img }}{{ post.file }}">{{ post.file }}</a> <span class="unimportant">
(
@@ -42,7 +42,7 @@
)
</span></p>
<a href="{{ config.uri_img }}{{ post.file }}" target="_blank"{% if post.thumb == 'file' %} class="file"{% endif %}>
-<img src="
+<img class="post-image" src="
{% if post.thumb == 'file' %}
{{ config.root }}
{% if config.file_icons[post.filename|extension] %}
@@ -54,7 +54,7 @@
{{ config.root }}{{ config.spoiler_image }}
{% else %}
{{ config.uri_thumb }}{{ post.thumb }}
- {% endif %}" style="width:{{ post.thumbx }}px;height:{{ post.thumby }}px" alt="" /></a>
+ {% endif %}" style="width:{{ post.thumbwidth }}px;height:{{ post.thumbheight }}px" alt="" /></a>
{% endif %}
<div class="post op"><p class="intro"{% if not index %} id="{{ post.id }}"{% endif %}>
<input type="checkbox" class="delete" name="delete_{{ post.id }}" id="delete_{{ post.id }}" />
@@ -82,6 +82,11 @@
{% if post.mod and post.mod|hasPermission(config.mod.show_ip, board.uri) %}
[<a style="margin:0;" href="?/IP/{{ post.ip }}">{{ post.ip }}</a>]
{% endif %}
+ {% if config.display_flags and post.modifiers.flag %}
+ <img class="flag" src="{{ config.uri_flags|sprintf(post.modifiers.flag) }}"
+ style="{% if post.modifiers['flag style'] %}{{ post.modifiers['flag style'] }}{% else %}{{ config.flag_style }}{% endif %}"
+ {% if post.modifiers['flag alt'] %}title="{{ post.modifiers['flag alt'] | e('html_attr') }}"{% endif %}>
+ {% endif %}
<time datetime="{{ post.time|date('%Y-%m-%dT%H:%M:%S') }}{{ timezone() }}">{{ post.time|date(config.post_date) }}</time>
</label>
{% if config.poster_ids %}
@@ -134,6 +139,9 @@
</p>
<div class="body">
{% endfilter %}{% if index %}{{ post.body|truncate_body(post.link) }}{% else %}{{ post.body }}{% endif %}{% filter remove_whitespace %}
+ {% if post.modifiers['ban message'] %}
+ {{ config.mod.ban_message|sprintf(post.modifiers['ban message']) }}
+ {% endif %}
</div>
{% if post.omitted or post.omitted_images %}
<span class="omitted">