Initial commit

Hello
This commit is contained in:
Juribiyan 2014-04-28 22:30:10 +06:00
commit f5be4c2157
716 changed files with 83358 additions and 0 deletions

50
.htaccess Normal file
View File

@ -0,0 +1,50 @@
DirectoryIndex index.php
AddCharset UTF-8 .html
AddCharset UTF-8 .php
FileETag None
ErrorDocument 403 /index.php?p=403
ErrorDocument 404 /index.php?p=404
# Anti-pekacefaling
<Limit GET POST>
BrowserMatchNoCase "Feedfetcher-Google" feedfetcher
BrowserMatchNoCase "facebookexternalhit" facebook
order deny,allow
deny from env=feedfetcher
deny from env=facebook
</Limit>
<IfModule mod_headers.c>
<Files *.html>
Header add Expires "Mon, 26 Jul 1997 05:00:00 GMT"
Header add Pragma "no-cache"
Header add Cache-Control "max-age=0; must-revalidate; no-cache; no-store"
Header set Expires "0"
Header unset Vary
</Files>
#cache css, javascript and text files for one week
<FilesMatch ".(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
#cache flash and images for one month
<FilesMatch ".(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
</IfModule>
Options All -Indexes
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript application/json
</IfModule>
php_value upload_max_filesize 9M
php_value post_max_size 9M
php_value max_execution_time 1000
php_value max_input_time 1000
# Warning: Contents below this line may be erased, please place all .htaccess rules above this line
## !KU_BANS:

110
README.md Normal file
View File

@ -0,0 +1,110 @@
# Instant 0chan
Набор для быстрого развертывания нульчана на движке, использовавшимся на Nullch.org (на основе Kusaba X).
## Функции
* Пользовательские доски (2.0чан) с максимальной свободой действий:
* Полноценная модерация
* Кастомные стили для досок
* Раздельные спамлисты для каждой из досок
* Автозамена
* ~~Коровья пизда~~
* Баннеры
* Мгновенное обновление тредов
* Исправлены баги Kusaba X
* Главная страница на HTML5 с возможностью кастомизации
* Полная совместимость с куклоскриптом
* Тач-интерфейс (с превью по клику)
* Подсветка кода
* LaTEX
* Эмбеды Youtube, Vimeo и Coub, не нагружающие страницу
* Баннеры
* Кириллическая протухающая капча с генератором произносимых слов
* Улучшенный парсинг
* Фильтры флуда и спама, детектирующие замену букв
* Дайсы, useragent, катриболы
* Множество мелких улучшений в клиентском и серверном коде
* Полный набор нульчановских досок в комплекте
### Выпилено
* Watched threads (через эту фичу можно было досить Kusaba X)
* Типы досок "Upload" и "Рисовач". Возможно, они появятся впоследствии.
## Требования
### Для базового функционала
* Apache
* [mod_cloudflare](https://www.cloudflare.com/resources-downloads) (для корректной работы с Cloudflare и кантриболлов). **Без MC баны из-под Cloudflare будут работать некорректно!** (как это было на zerochan.in). [Установка mod_cloudflare на CPanel.](http://tltech.com/info/installing-mod_cloudflare-on-cpanel/)
* PHP
* MySQL
Особых требований к версиям нет, должно встать на среднестатичтический виртуальный хостинг. Читайте ошибки, если что-то не заработает. Теоретически возможна работа с базами SQLite и PostgreSQL, но это не тестировалось. Вместо Apache можно использовать Nginx (что тоже не тестировалось), но для него придется дописывать [обнаружение реальных IP](http://centminmod.com/nginx_configure_cloudflare.html).
### Для расширенного функционала
* PHP 5.3+ (для 2.0 и мгновенных обновлений)
* Аккаунт на [Areyouahuman](http://portal.areyouahuman.com/signup/basic) (капча для 2.0)
* Node.JS (для мгновенных обновлений)
* Либо соглашение с сервисом [ploosmeenoos](mailto:admin@ploosmeenoos.tk "Оставляйте свои зайвки здесь") (для мгновенных обновлений если нет Node.js)
* Cloudflare (для кантриболлов)
## Установка
### Конфигурация
Файл `config.php` в корневой папке содержит основную конфигурацию, которую нужно выполнить в первую очередь.
* **KU_DBTYPE** `(=mysqli)`: тип базы данных
* **KU_DBHOST**, **KU_DBDATABASE**, **KU_DBUSERNAME**, **KU_DBPASSWORD**: данные для доступа к БД.
* **KU_NAME**: название сайта.
* **KU_SLOGAN**: слоган сайта.
* **KU_WEBFOLDER**: подпапка кусабы на вашем сайте, если она лежит не в корне. (Например, для http://example.com/board/b KU_WEBFOLDER = `"/board/"`).
* **KU_REACT_ENA** `(true | false)`: включает/выключает мгновенные обновления. Смотри "Настройка мгновенных обновлений" ниже.
* **KU_CSSVER**, **KU_CSSVER** `(любая строка)`: версии CSS и JS, отдаваемые клиенту. При внесении изменений в CSS или JS, рекомендуется инкрементировать версию и пересобрать все файлы.
* **KU_CAPTCHALIFE** `(число)`: время жизни капчи в секундах.
* **KU_20_BOARDSLIMIT** `(число)`: сколько досок может иметь пользователь 2.0-ча.
* **KU_20_CLOUDTIME** `(strtotime-совместимая строка со знаком минус)`: период времени, за который подсчитываются посты на 2.0 досках при сортировке.
* **KU_USERAGENT_ENABLED**: список досок, на которых работает `##useragent##`
### Процесс установки
* Убедитесь, что база данных, указанная в конфигурации, создана.
* Скопируйте файлы из папки `UTIL` (кроме `updates.js`) в корневую папку.
* Запустите `install.php`. После проверки доступности базы данных вам предложат импортировать данные в базу.
* После дампа базы данных введите логин и пароль администратора.
* Удалите файлы, скопированные из папки `UTIL`.
* Зарегистрируйте свой сайт на [Areyouahuman](http://portal.areyouahuman.com/signup/basic).
* Вставьте `Publisher Key` и `Scoring Key` в `/inc/AYAH/ayah_config.php`.
#### Треки с главной страницы
Треки не включены в репозиторий; скачать их можно отсюда. Скопируйте их в `/pages/loops/`.
### Установка мгновенных обновлений
* Скопируйте `updates.js` в папку, в которой собираетесь запускать Node.js
* Находясь в этой папке, выполните "`npm install` [`express`](https://www.npmjs.org/package/express) [`socket.io`](https://www.npmjs.org/package/socket.io)"
* Наберите случайную строку в `srvtoken`. Присвойте это же значение `$cf['KU_REACT_SRVTOKEN']` в `config.php`.
* Задайте порт и IP (`node_port`, `node_ip`), на которых будет работать процесс `node`. Внесите эти значения в `config.php` в форме URL (`KU_LOCAL_REACT_API` и `KU_CLI_REACT_API`).
* Запустите процесс `node updates.js`
* Для стабильной работы `node.js` в продакшене нужно воспользоваться одним из способов по демонизации и мониторингу этого процесса. Например, "[`nohup`](http://ru.wikipedia.org/wiki/Nohup) [`always`](https://github.com/edwardhotchkiss/always) `updates.js &`" (предварительно должен быть установлен `always` (`npm install always -g`)). Есть и другие способы.
* Активируйте фичу (в `config.php`: `KU_REACT_ENA = true`).
* Пересоберите все файлы и папки.
* Если запустить node нет возможности, я могу предоставить [мгновенные обновления как сервис](mailto:admin@ploosmeenoos.tk "Оставляйте свои зайвки здесь").
### Кастомизация
* Логотипы сайта и 2.0-ча располагаются в папке `/images/`.
* Для редактирования паттерна на главной странице выполните команду `editmode();` из консоли браузера на главной странице. Нарисуйте нужный паттерн и нажмите "Получить паттерн". Скопируйте паттерн и размеры паттерна в `/pages/patterns/main.php` (или другой файл).
* Данные для доната располагаются в `/pages/contents/donate.php`. По умолчанию там указаны [кошельки ЕФГ](http://web.archive.org/web/20121028010659/http://0chan.ru/?donate).
* Чтобы добавить собственные лупы на главную, их нужно скопировать в `/pages/loops/`, после чего внести в список `loops` в `/pages/index.js`. Файлы должны быть в формате OGG.
### Управление сайтом
#### manage.php
* Derp
#### Управление версиями и кэшем
* При изменении CSS или JS файлов рекомендуется инкрементировать `KU_CSSVER` и `KU_JSVER` в файле `config.php` после чего пересобирать все файлы.
* При изменении других файлов, если вы используете Cloudflare, необходимо [вручную удалить файл из кэша](http://blog.cloudflare.com/introducing-single-file-purge). Если вы не уверены, что пользователям отдается свежая версия ресурсов или если что-то пошло не так, очищайте кэш Cloudflare полностью.

192
UTIL/install-mysql.php Normal file
View File

@ -0,0 +1,192 @@
<?php
/**
* @ignore
*/
################################################################################
# kusaba MySQL Importing Script v1.0 is © 2007 David Steven-Jennings (relixx@gmail.com)
#
# This work is licensed under the Creative Commons Attribution-ShareAlike 2.5 License.
# To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.5/
# or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco,
# California, 94105, USA.
#
# You can modify this script as you wish just as long as this box stays intact. If
# you do modify this script please state that you have done so and give me credit
# as the author of the original script (with my email address intact).
################################################################################
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MySQL Batch File Importing Script</title>
<style type="text/css">
body { font-family: sans-serif; font-size: 75%; background: #ffe }
a { text-decoration: none; color: #550 }
h1,h2 { margin: 0px; background: #fca }
h1 { font-size: 150% }
h2 { font-size: 100%; margin-top: 1em }
.hl { font-style: italic }
.plus { float: right; font-size: 8px; font-weight: normal; padding: 1px 4px 2px 4px; margin: 0px 0px; background: #eb9; color: #000; border: 1px solid #da8; cursor: hand; cursor: pointer }
.plus:hover { background: #da8; border: 1px solid #c97 }
ul { list-style: none; padding-left: 0px; margin: 0px }
li { margin: 0px }
li:hover { background: #fec; }
li a { display: block; width: 100%; }
</style>
<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>
<div style="text-align:center;"><h1>MySQL Batch File Importing Script</h1></div>
<?php
if (!isset($_POST["confirm"])) {
?>
<br /><br />
<font color="#FF0000"><strong>WARNING!</strong></font><br /><br />
The purpose of this script is to quickly and easily run the commands contained within the kusaba SQL file, and is
to be used if you are installing the script for the first time or want to recreate the tables, for whatever reason.<br />
Running this script will delete any related tables and their data (including the admin files). I offer this script as-is and cannot be held
responsible for any damages caused or accidental loss of data incurred as a result of running this script.<br />
Before running this script, make sure that:<br />
<ul>
<li>-&gt; You have set up the database connection and that it is working</li>
<li>-&gt; You have created the database</li>
<li>-&gt; You have created the database user and set up the config file appropriately</li>
</ul>
<form action="install-mysql.php" method="post">
<br />
<input type="checkbox" name="confirm"> By clicking this check box I agree that the author of this script cannot be held responsible for my own stupidity if something goes wrong.<br /><br /><br />
<input type="submit" value="Import the MySQL batch file">
</form>
<?php
} else {
require('config.php');
$reqiredtables = array("ads","announcements","banlist","bannedhashes","blotter","boards","board_filetypes","embeds","events","filetypes","front","loginattempts","modlog","module_settings","posts","reports","sections","staff","watchedthreads","wordfilter");
foreach ($reqiredtables as $tablename) {
if (mysql_table_exists(KU_DBDATABASE,KU_DBPREFIX.$tablename)) {
die("Table <strong>".KU_DBPREFIX.$tablename."</strong> already exists in the database! Drop it, and re run this script.");
}
}
// Lets open the file for reading! :)
echo '<h2>SQL Batch File Processing</h2>';
echo 'Locating \'kusaba_freshinstall.mysql.sql\'... ';
if (file_exists('kusaba_freshinstall.mysql.sql') && (filesize('kusaba_freshinstall.mysql.sql') > 0)) {
echo 'found.<br />';
$sqlfile = fopen('kusaba_freshinstall.mysql.sql', 'r');
echo 'File opened.<br />';
$readdata = fread($sqlfile, filesize('kusaba_freshinstall.mysql.sql'));
$readdata = str_replace('PREFIX_',KU_DBPREFIX,$readdata);
fclose($sqlfile);
echo 'Contents read.<br />';
}else{
echo '<font color=red>error.</font> ';
die('An error occured. kusaba_freshinstall.mysql.sql does not exist in this directory or it is 0 bytes big :( Barring that, do you have read permissions for the directory?');
}
$tc_db->Execute("ALTER DATABASE `" . KU_DBDATABASE . "` CHARACTER SET utf8 COLLATE utf8_general_ci");
// Explodes the array
$sqlarray = explode("\n", $readdata);
// Loops through the array and deletes the non-SQL bits in the file, which is basically the '--' lines and the lines with no content
foreach ($sqlarray as $key => $sqldata) {
if (strstr($sqldata, '--') || strlen($sqldata) == 0){
unset($sqlarray[$key]);
}
}
// Here we are imploding everything together again...
$readdata = implode('',$sqlarray);
// ...then exploding it again. At this point we will have an array where each key's value is a one of the CREATE statements
$sqlarray = explode(';',$readdata);
echo 'File contents have been formatted for use with mysql_query.<br />';
// Lets drop any existing tables in the database
$listoftables = $tc_db->GetAll("show tables from ".KU_DBDATABASE."");
echo '<h2>Table Creation</h2>';
// Lets now loop through the array and create each table
foreach ($sqlarray as $sqldata) {
if (strlen($sqldata) !== 0) { // As the array was exploded on ';', the last ';' caused a blank element to be created as there was no data after it :p
// The following three lines retrieve the table name of the table from the sql command. It's dynamic so it doesn't matter how many tables need to be created
// As long as each CREATE TABLE statement stays in the format CREATE TABLE `table` then this part will work.
$pos1 = strpos($sqldata, '`');
$pos2 = strpos($sqldata, '`', $pos1 + 1);
$tablename = substr($sqldata, $pos1+1, ($pos2-$pos1)-1);
echo "Attempting to create table '$tablename'... ";
if($tc_db->Execute($sqldata)) {
echo "success.<br />";
} else {
echo "<font color='red'>failed</font>. Enable debugging by setting KU_DEBUG to true to see this error.<br />";
die ("Table creation failed. Please rerun this script again or attempt to fix the problem if you know how to solve it.");
}
}
}
// All done :)
$allboards = $tc_db->GetAll("SELECT `name`, `id` FROM `".KU_DBPREFIX."boards`");
$img_ft = $tc_db->GetAll("SELECT `id` FROM `".KU_DBPREFIX."filetypes` WHERE `filetype` = 'jpg' OR `filetype` = 'png' OR `filetype` = 'gif'");
$flash_ft = $tc_db->GetAll("SELECT `id` FROM `".KU_DBPREFIX."filetypes` WHERE `filetype` = 'swf'");
$ft_query = "INSERT INTO `".KU_DBPREFIX."board_filetypes` (`boardid`, `typeid`) VALUES ";
$ft_rows = [];
$err = false;
foreach($allboards as $dir) {
$bid = $dir['id'];
$dir = $dir['name'];
if (mkdir(KU_BOARDSDIR . $dir, 0777) && mkdir(KU_BOARDSDIR . $dir . '/res', 0777) && mkdir(KU_BOARDSDIR . $dir . '/src', 0777) && mkdir(KU_BOARDSDIR . $dir . '/thumb', 0777)) {
file_put_contents(KU_BOARDSDIR . $dir . '/.htaccess', 'DirectoryIndex '. KU_FIRSTPAGE . '');
file_put_contents(KU_BOARDSDIR . $dir . '/src/.htaccess', 'AddType text/plain .ASM .C .CPP .CSS .JAVA .JS .LSP .PHP .PL .PY .RAR .SCM .TXT'. "\n" . 'SetHandler default-handler');
if(in_array($dir, array('f', 'test', 'r'))) {
$all_ft = array_merge($img_ft, $flash_ft);
}
else $all_ft = $img_ft;
foreach($all_ft as $ft) {
$ft_rows[] = "(".$bid.", ".$ft['id'].")";
}
}
else $err = true;
}
if(!$err) {
require_once KU_ROOTDIR . 'inc/classes/menu.class.php';
require_once KU_ROOTDIR . 'inc/func/paths.php';
require_once KU_ROOTDIR . 'inc/func/posts.php';
require_once KU_ROOTDIR . 'inc/func/pages.php';
require_once KU_ROOTDIR . 'inc/func/misc.php';
require_once KU_ROOTDIR . 'inc/func/calculations.php';
require_once KU_ROOTDIR . 'inc/func/fetching.php';
require_once KU_ROOTDIR . 'inc/func/numberformatting.php';
require_once KU_ROOTDIR . 'inc/classes/board-post.class.php';
require_once KU_ROOTDIR.'lib/dwoo.php';
$ft_query .= implode(', ', $ft_rows);
$tc_db->Execute($ft_query);
foreach($allboards as $line) {
$board_class = new Board($line['name']);
$board_class->RegenerateAll();
unset($board_class);
}
$menu_class = new Menu();
$menu_class->Generate();
echo '<br />SQL commands have finished. Now insert administrator\'s username and password.<br />'.
'<form method="get" action="install.php"><label for="username">Username: </label><input type="text" name="username" id="username" value="admin"> <label for="password">Password: </label><input type="password" name="password" id="password"><input type="submit"></form>';
}
else echo '<br />Unable to create direcories.';
}
function mysql_table_exists($database, $tableName)
{
global $tc_db;
$tables = array();
$tablesResults = $tc_db->GetAll("SHOW TABLES FROM `$database`;");
foreach ($tablesResults AS $row) $tables[] = $row[0];
return(in_array($tableName, $tables));
}
?>
</body>
</html>

129
UTIL/install.php Normal file
View File

@ -0,0 +1,129 @@
<?php
/**
* @ignore
*/
function mysql_table_exists($database, $tableName) {
global $tc_db;
$tables = array();
$tablesResults = $tc_db->GetAll("SHOW TABLES FROM `$database`;");
foreach ($tablesResults AS $row) $tables[] = $row[0];
return(in_array($tableName, $tables));
}
function pgsql_table_exists($database, $tableName) {
global $tc_db;
$tables = array();
$tablesResults = $tc_db->GetAll(" select table_name from information_schema.tables where table_schema='public' and table_type='BASE TABLE'");
foreach ($tablesResults AS $row) $tables[] = $row[0];
return(in_array($tableName, $tables));
}
function sqlite_table_exists($database, $tableName) {
global $tc_db;
$tables = array();
$tablesResults = $tc_db->GetAll("SELECT name FROM sqlite_master WHERE type = 'table'" );
foreach ($tablesResults AS $row) $tables[] = $row[0];
return(in_array($tableName, $tables));
}
function CreateSalt() {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$salt = '';
for ($i = 0; $i < 3; ++$i) {
$salt .= $chars[mt_rand(0, strlen($chars) - 1)];
}
return $salt;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kusaba X Installation</title>
<style type="text/css">
body { font-family: sans-serif; font-size: 75%; background: #ffe }
a { text-decoration: none; color: #550 }
h1,h2 { margin: 0px; background: #fca }
h1 { font-size: 150% }
h2 { font-size: 100%; margin-top: 1em }
.hl { font-style: italic }
.plus { float: right; font-size: 8px; font-weight: normal; padding: 1px 4px 2px 4px; margin: 0px 0px; background: #eb9; color: #000; border: 1px solid #da8; cursor: hand; cursor: pointer }
.plus:hover { background: #da8; border: 1px solid #c97 }
ul { list-style: none; padding-left: 0px; margin: 0px }
li { margin: 0px }
li:hover { background: #fec; }
li a { display: block; width: 100%; }
</style>
<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>
<div style="text-align:center;"><h1>Kusaba X Installation</h1></div>
<?php
echo '<h2>Checking configuration file...</h2>';
if (file_exists('config.php')) {
require 'config.php';
require KU_ROOTDIR . 'inc/functions.php';
if (KU_RANDOMSEED!="ENTER RANDOM LETTERS/NUMBERS HERE"&&KU_RANDOMSEED!="") {
echo 'Configuration appears correct.';
echo '<h2>Checking database...</h2>';
$reqiredtables = array("ads","announcements","banlist","bannedhashes","blotter","boards","board_filetypes","embeds","events","filetypes","front","loginattempts","modlog","module_settings","posts","reports","sections","staff","watchedthreads","wordfilter");
foreach ($reqiredtables as $tablename) {
if (KU_DBTYPE == 'mysql' || KU_DBTYPE == 'mysqli') {
if (!mysql_table_exists(KU_DBDATABASE,KU_DBPREFIX.$tablename)) {
die("Couldn't find the table <strong>".KU_DBPREFIX.$tablename."</strong> in the database. Please <a href=\"install-mysql.php\"><strong><u>insert the mySQL dump</u></strong></a>.");
}
}
if (KU_DBTYPE == 'postgres7' || KU_DBTYPE == 'postgres8' || KU_DBTYPE == 'postgres') {
if (!pgsql_table_exists(KU_DBDATABASE,KU_DBPREFIX.$tablename)) {
die("Couldn't find the table <strong>".KU_DBPREFIX.$tablename."</strong> in the database. Please <a href=\"install-pgsql.php\"><strong><u>insert the PostgreSQL dump</u></strong></a>.");
}
}
if (KU_DBTYPE == 'sqlite') {
if (!sqlite_table_exists(KU_DBDATABASE,KU_DBPREFIX.$tablename)) {
die("Couldn't find the table <strong>".KU_DBPREFIX.$tablename."</strong> in the database. Please <a href=\"install-sqlite.php\"><strong><u>insert the SQLite dump</u></strong></a>.");
}
}
}
echo 'Database appears correct.';
$salt = CreateSalt();
if(isset($_GET['username']) && isset($_GET['password'])) {
$q_check = "SELECT COUNT(*) FROM `".KU_DBPREFIX."staff` WHERE `username` = 'admin'";
$username = $_GET['username']; $password = $_GET['password'];
}
else {
$q_check = "SELECT COUNT(*) FROM `".KU_DBPREFIX."staff` WHERE `username` = 'admin'";
$username = 'admin'; $password = 'admin';
}
echo '<h2>Inserting default administrator account...</h2>';
$result_exists = $tc_db->GetOne("SELECT COUNT(*) FROM `".KU_DBPREFIX."staff` WHERE `username` = '".$username."'");
if ($result_exists==0) {
$salt = CreateSalt();
$result = $tc_db->Execute("INSERT INTO `".KU_DBPREFIX."staff` ( `username` , `salt`, `password` , `type` , `addedon` ) VALUES ( '".$username."' , '".$salt."', '".md5($password.$salt)."' , '1' , '".time()."' )");
echo 'Account inserted.';
$result = true;
} else {
echo 'There is already an administrator account inserted.';
$result = true;
}
if ($result) {
require_once KU_ROOTDIR . 'inc/classes/menu.class.php';
$menu_class = new Menu();
$menu_class->Generate();
echo '<h2>Done!</h2>Installation has finished! The default administrator account is <strong>admin</strong> with the password of <strong>admin</strong>.<br /><br />Delete this and the install-mysql.php file from the server, then <a href="manage.php">add some boards</a>!';
echo '<br /><br /><br /><h1><font color="red">DELETE THIS AND install-mysql.php RIGHT NOW!</font></h1>';
} else {
echo 'Error inserting SQL. Please add <strong>$tc_db->debug = true;</strong> just before ?&gt; in config.php to turn on debugging, and check the error message.';
}
} else {
echo 'Please enter a random string into the <strong>KU_RANDOMSEED</strong> value.';
}
} else {
echo 'Unable to locate config.php';
}
?>
</body>
</html>

View File

@ -0,0 +1,450 @@
-- --------------------------------------------------------
-- #snivystuff : Banners
CREATE TABLE `PREFIX_banners` (
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
`link` varchar(255) NOT NULL,
`path` varchar(127) NOT NULL,
`custom` tinyint(1) NOT NULL DEFAULT '0',
`version` smallint(6) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- #snivystuff : Custom styles
CREATE TABLE `PREFIX_customstyles` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`owner` varchar(255) NOT NULL,
`version` smallint(11) NOT NULL DEFAULT '0',
`temporary` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Table structure for table `ads`
--
CREATE TABLE `PREFIX_ads` (
`id` smallint(1) unsigned NOT NULL,
`position` varchar(3) NOT NULL,
`disp` tinyint(1) NOT NULL,
`boards` varchar(255) NOT NULL,
`code` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `announcements`
--
CREATE TABLE `PREFIX_announcements` (
`id` int(10) unsigned NOT NULL auto_increment,
`parentid` int(10) unsigned NOT NULL default '0',
`subject` varchar(255) NOT NULL,
`postedat` int(20) NOT NULL,
`postedby` varchar(75) NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `banlist`
--
CREATE TABLE `PREFIX_banlist` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`type` tinyint(1) NOT NULL default '0',
`expired` tinyint(1) NOT NULL default '0',
`allowread` tinyint(1) NOT NULL default '1',
`ip` varchar(50) NOT NULL,
`ipmd5` char(32) NOT NULL,
`globalban` tinyint(1) NOT NULL default '0',
`boards` varchar(255) NOT NULL,
`by` varchar(75) NOT NULL,
`at` int(20) NOT NULL,
`until` int(20) NOT NULL,
`reason` text NOT NULL,
`staffnote` text NOT NULL,
`appeal` text,
`appealat` int(20) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `bannedhashes`
--
CREATE TABLE `PREFIX_bannedhashes` (
`id` int(10) NOT NULL auto_increment,
`md5` varchar(255) NOT NULL,
`bantime` int(10) NOT NULL default '0',
`description` text NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `blotter`
--
CREATE TABLE `PREFIX_blotter` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`important` tinyint(1) NOT NULL,
`at` int(20) NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `boards`
--
CREATE TABLE `PREFIX_boards` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`order` tinyint(5) NOT NULL DEFAULT '0',
`name` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`type` tinyint(1) NOT NULL DEFAULT '0',
`start` int(10) unsigned NOT NULL DEFAULT '1',
`uploadtype` tinyint(1) NOT NULL DEFAULT '1',
`desc` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`section` tinyint(2) NOT NULL DEFAULT '0',
`maximagesize` int(20) NOT NULL DEFAULT '4096000',
`maxpages` int(20) NOT NULL DEFAULT '11',
`maxage` int(20) NOT NULL DEFAULT '0',
`markpage` tinyint(4) NOT NULL DEFAULT '99',
`maxreplies` int(5) NOT NULL DEFAULT '500',
`messagelength` int(10) NOT NULL DEFAULT '8192',
`createdon` int(20) NOT NULL,
`locked` tinyint(1) NOT NULL DEFAULT '0',
`includeheader` text COLLATE utf8_unicode_ci NOT NULL,
`redirecttothread` tinyint(1) NOT NULL DEFAULT '0',
`anonymous` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Аноним',
`forcedanon` tinyint(1) NOT NULL DEFAULT '0',
`embeds_allowed` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'you,vim,cob',
`trial` tinyint(1) NOT NULL DEFAULT '0',
`popular` tinyint(1) NOT NULL DEFAULT '0',
`defaultstyle` varchar(50) CHARACTER SET latin1 NOT NULL DEFAULT '',
`locale` varchar(30) CHARACTER SET latin1 NOT NULL DEFAULT 'ru',
`showid` tinyint(1) NOT NULL DEFAULT '0',
`compactlist` tinyint(1) NOT NULL DEFAULT '0',
`enablereporting` tinyint(1) NOT NULL DEFAULT '1',
`enablecaptcha` tinyint(1) NOT NULL DEFAULT '1',
`enablenofile` tinyint(1) NOT NULL DEFAULT '0',
`enablearchiving` tinyint(1) NOT NULL DEFAULT '0',
`enablecatalog` tinyint(1) NOT NULL DEFAULT '1',
`loadbalanceurl` varchar(255) CHARACTER SET latin1 NOT NULL DEFAULT '',
`loadbalancepassword` varchar(255) CHARACTER SET latin1 NOT NULL DEFAULT '',
`balls` tinyint(1) NOT NULL DEFAULT '0',
`dice` tinyint(1) NOT NULL DEFAULT '0',
`useragent` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
--
-- Table structure for table `board_filetypes`
--
CREATE TABLE `PREFIX_board_filetypes` (
`boardid` tinyint(5) NOT NULL default '0',
`typeid` mediumint(5) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `embeds`
--
CREATE TABLE `PREFIX_embeds` (
`id` tinyint(5) unsigned NOT NULL auto_increment,
`filetype` varchar(3) NOT NULL,
`name` varchar(255) NOT NULL,
`videourl` varchar(510) NOT NULL,
`width` tinyint(3) unsigned NOT NULL,
`height` tinyint(3) unsigned NOT NULL,
`code` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `events`
--
CREATE TABLE `PREFIX_events` (
`name` varchar(255) NOT NULL,
`at` int(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `filetypes`
--
CREATE TABLE `PREFIX_filetypes` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`filetype` varchar(255) NOT NULL,
`mime` varchar(255) NOT NULL default '',
`image` varchar(255) NOT NULL default '',
`image_w` int(7) NOT NULL default '0',
`image_h` int(7) NOT NULL default '0',
`force_thumb` int(1) NOT NULL default '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `front`
--
CREATE TABLE `PREFIX_front` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`page` smallint(1) unsigned NOT NULL default '0',
`order` smallint(5) unsigned NOT NULL default '0',
`subject` varchar(255) NOT NULL,
`message` text NOT NULL,
`timestamp` int(20) NOT NULL default '0',
`poster` varchar(75) NOT NULL,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `loginattempts`
--
CREATE TABLE `PREFIX_loginattempts` (
`username` varchar(255) NOT NULL,
`ip` varchar(20) NOT NULL,
`timestamp` int(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `modlog`
--
CREATE TABLE `PREFIX_modlog` (
`entry` text NOT NULL,
`user` varchar(255) NOT NULL,
`category` tinyint(2) NOT NULL default '0',
`timestamp` int(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `module_settings`
--
CREATE TABLE `PREFIX_module_settings` (
`module` varchar(255) NOT NULL,
`key` varchar(255) NOT NULL,
`value` text character set utf8 collate utf8_unicode_ci NOT NULL,
`type` varchar(255) NOT NULL default 'string'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `posts`
--
CREATE TABLE `PREFIX_posts` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`boardid` smallint(5) unsigned NOT NULL,
`parentid` int(10) unsigned NOT NULL DEFAULT '0',
`name` varchar(255) NOT NULL,
`tripcode` varchar(30) NOT NULL,
`email` varchar(255) NOT NULL,
`subject` varchar(255) NOT NULL,
`message` text NOT NULL,
`password` varchar(255) NOT NULL,
`file` varchar(50) NOT NULL,
`file_md5` char(32) NOT NULL,
`file_type` varchar(20) NOT NULL,
`file_original` varchar(255) NOT NULL,
`file_size` int(20) NOT NULL DEFAULT '0',
`file_size_formatted` varchar(75) NOT NULL,
`image_w` smallint(5) NOT NULL DEFAULT '0',
`image_h` smallint(5) NOT NULL DEFAULT '0',
`thumb_w` smallint(5) unsigned NOT NULL DEFAULT '0',
`thumb_h` smallint(5) unsigned NOT NULL DEFAULT '0',
`ip` varchar(75) NOT NULL,
`ipmd5` char(32) NOT NULL,
`tag` varchar(5) NOT NULL,
`timestamp` int(20) unsigned NOT NULL,
`stickied` tinyint(1) NOT NULL DEFAULT '0',
`locked` tinyint(1) NOT NULL DEFAULT '0',
`posterauthority` tinyint(1) NOT NULL DEFAULT '0',
`reviewed` tinyint(1) unsigned NOT NULL DEFAULT '0',
`deleted_timestamp` int(20) NOT NULL DEFAULT '0',
`IS_DELETED` tinyint(1) NOT NULL DEFAULT '0',
`bumped` int(20) unsigned NOT NULL DEFAULT '0',
`country` varchar(10) NOT NULL DEFAULT 'xx',
PRIMARY KEY (`boardid`,`id`),
KEY `parentid` (`parentid`),
KEY `bumped` (`bumped`),
KEY `file_md5` (`file_md5`),
KEY `stickied` (`stickied`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
-- --------------------------------------------------------
--
-- Table structure for table `reports`
--
CREATE TABLE `PREFIX_reports` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`cleared` tinyint(1) NOT NULL default '0',
`board` varchar(255) NOT NULL,
`postid` int(20) NOT NULL,
`when` int(20) NOT NULL,
`ip` varchar(75) NOT NULL,
`reason` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `sections`
--
CREATE TABLE `PREFIX_sections` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`order` tinyint(3) NOT NULL default '0',
`hidden` tinyint(1) NOT NULL default '0',
`name` varchar(255) NOT NULL default '0',
`abbreviation` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `staff`
--
CREATE TABLE `PREFIX_staff` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`salt` varchar(3) NOT NULL,
`type` tinyint(1) NOT NULL default '0',
`boards` text,
`addedon` int(20) NOT NULL,
`lastactive` int(20) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `watchedthreads`
--
CREATE TABLE `PREFIX_watchedthreads` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`threadid` int(20) NOT NULL,
`board` varchar(255) NOT NULL,
`ip` char(15) NOT NULL,
`lastsawreplyid` int(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `wordfilter`
--
CREATE TABLE `PREFIX_wordfilter` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`word` varchar(75) NOT NULL,
`replacedby` varchar(75) NOT NULL,
`boards` text NOT NULL,
`time` int(20) NOT NULL,
`regex` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `PREFIX_sections` (`id`, `order`, `hidden`, `name`, `abbreviation`) VALUES
(1, 1, 0, 'all', 'all'),
(2, 2, 0, 'geek', 'geek'),
(3, 3, 0, 'other', 'other'),
(4, 4, 0, 'adult', 'adult'),
(5, 0, 1, '2.0', '20');
INSERT INTO `PREFIX_ads` (`id`, `position`, `disp`, `boards`, `code`) VALUES (1, 'top', 0, '', 'Right Frame Top'), (2, 'bot', 0, '', 'Right Frame Bottom');
INSERT INTO `filetypes`
(`filetype`, `mime`, `image`, `image_w`, `image_h`, `force_thumb`) VALUES
( 'jpg', '', '', 0, 0, 0),
( 'gif', '', '', 0, 0, 0),
( 'png', '', '', 0, 0, 0),
( 'swf', 'application/x-shockwave-flash', 'flash.png', 48, 48, 1);
INSERT INTO `PREFIX_events` (`name`, `at`) VALUES ('pingback', 0), ('sitemap', 0);
INSERT INTO `PREFIX_embeds` (`filetype`, `name`, `videourl`, `width`, `height`, `code`) VALUES
('you', 'Youtube', 'http://www.youtube.com/watch?v=', 255, 255, '<div class=\"youtube embed wrapper\" style=\"background-image:url(http://img.youtube.com/vi/EMBED_ID/0.jpg)\" data-id=\"EMBED_ID\" data-site=\"youtube\"></div>'),
('vim', 'Vimeo', 'http://vimeo.com/', 200, 164, '<div class=\"vimeo embed wrapper\" data-id=\"EMBED_ID\" data-site=\"vimeo\"></div>'),
('cob', 'Coub', 'http://coub.com/view/', 200, 164, '<div class=\"coub embed wrapper\" data-id=\"EMBED_ID\" data-site=\"coub\"></div>');
INSERT INTO `PREFIX_boards`
(`section`, `order`, `name`, `desc`, `maximagesize`, `maxpages`, `createdon`, `anonymous`, `forcedanon`, `enablenofile`, `dice`, `useragent` ) VALUES
('1', '1', 'b', 'Бред', '4096000', '11', UNIX_TIMESTAMP(NOW()), '', '0', '0', '0', '0' ),
('1', '2', 'd', 'Рисунки', '4096000', '5', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('1', '3', 'r', 'Реквесты', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '1', '0', '0' ),
('1', '4', '0', 'Øчан', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '1', '0', '1' ),
('2', '1', 'e', 'Радиоэлектроника', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('2', '2', 't', 'Технологии', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('2', '3', 'hw', 'Железо', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('2', '4', 's', 'Софт', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '1' ),
('2', '5', 'c', 'Быдлокодинг', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('2', '6', 'vg', 'Видеоигры', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('2', '7', '8', '8-bit и pixel art', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('2', '8', 'bg', 'Настольные игры', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '1', '0' ),
('2', '9', 'wh', 'Warhammer', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '1', '0' ),
('3', '1', 'a', 'Аниме', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '2', 'au', 'Автомобили', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '3', 'bo', 'Книги', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '4', 'co', 'Комиксы', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '5', 'cook', 'Лепка супов', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '6', 'f', 'Flash', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '7', 'fa', 'Мода и стиль', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '8', 'fl', 'Иностранные языки', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '9', 'm', 'Музыка', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '10', 'med', 'Медицина', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '11', 'ph', 'Фотографии', '8192000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '12', 'tv', 'Кино и сериалы', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '13', 'war', 'Вооружение', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('3', '14', 'wp', 'Обои', '8192000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('4', '1', 'h', 'Хентай', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('4', '2', 'g', 'Девушки', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('4', '3', 'fur', 'Фурри', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('', '1', 'nhk', 'Nullchan Hikikomori Kyokai', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('', '1', 'test', 'Тестирования движка', '1024000', '1', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '0', '0', '0' ),
('', '1', 'i', 'Invasion', '4096000', '11', UNIX_TIMESTAMP(NOW()), 'Аноним', '0', '1', '1', '1' );

25
UTIL/updates.js Normal file
View File

@ -0,0 +1,25 @@
var node_ip = '127.0.0.1', node_port = '1337';
var srvtoken = "<enter random string>";
var express = require('express'), app = express();
var server = require('http').createServer(app);
//SOCKET.IO [npm install socket.io]
var io = require('socket.io').listen(server);
io.set('log level', 0);
io.set('browser client minification', true);
io.sockets.on('connection', function (socket) {
socket.on('srvmsg', function(data) {
console.log(data);
if(typeof data.srvtoken === 'undefined' || data.srvtoken !== srvtoken || typeof data.room === 'undefined') return;
io.sockets.in(data.room).emit('update', {token: data.clitoken, timestamp: data.timestamp});
});
socket.on('subscribe', function(room) {
socket.join(room);
});
});
server.listen(node_port, node_ip);

55
banned.php Normal file
View File

@ -0,0 +1,55 @@
<?php
/*
* This file is part of kusaba.
*
* kusaba is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* kusaba is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* kusaba; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* "You are banned" page
*
* Users will be redirected to this page when they are banned from posting to or
* viewing the boards.
*
* @package kusaba
*/
/**
* Require the configuration file, functions file, and bans class
*/
require 'config.php';
require KU_ROOTDIR . 'inc/functions.php';
require KU_ROOTDIR . 'inc/classes/bans.class.php';
$bans_class = new Bans();
if (isset($_POST['appealmessage']) && KU_APPEAL != '') {
$results = $tc_db->GetAll("SELECT * FROM `".KU_DBPREFIX."banlist` WHERE `type` = '0' AND `ipmd5` = '" . md5($_SERVER['REMOTE_ADDR']) . "' AND `id` = " . $tc_db->qstr($_POST['banid']) . "LIMIT 1");
if (count($results)>0) {
foreach($results AS $line) {
if ($line['appealat'] > 0 && $line['appealat'] < time()) {
$tc_db->Execute("UPDATE `".KU_DBPREFIX."banlist` SET `appealat` = '-1' , appeal = ".$tc_db->qstr($_POST['appealmessage'])." WHERE `id` = '" . $line['id'] . "'");
echo 'Your appeal has been sent and is pending review.';
} else {
echo 'You may not appeal that ban at this time.';
}
die();
}
}
}
$bans_class->BanCheck($_SERVER['REMOTE_ADDR'], '', true);
?>

6
blotter.php Normal file
View File

@ -0,0 +1,6 @@
<?php
require 'config.php';
require KU_ROOTDIR . 'inc/functions.php';
echo getBlotter(true);
?>

0
bnrs.json Normal file
View File

507
board.php Normal file
View File

@ -0,0 +1,507 @@
<?php
/*
* This file is part of kusaba.
*
* kusaba is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* kusaba is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* kusaba; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
* +------------------------------------------------------------------------------+
* kusaba - http://www.kusaba.org/
* Written by Trevor "tj9991" Slocum
* http://www.tj9991.com/
* tslocum@gmail.com
* +------------------------------------------------------------------------------+
*/
/**
* Board operations which available to all users
*
* This file serves the purpose of providing functionality for all users of the
* boards. This includes: posting, reporting posts, and deleting posts.
*
* @package kusaba
*/
// }}}
// {{{ Fake email field check
if (isset($_POST['email']) && !empty($_POST['email'])) {
exitWithErrorPage('Spam bot detected');
}
// Start the session
session_start();
// Require the configuration file, functions file, board and post class, bans class, and posting class
require 'config.php';
require KU_ROOTDIR . 'inc/functions.php';
require KU_ROOTDIR . 'inc/classes/board-post.class.php';
require KU_ROOTDIR . 'inc/classes/bans.class.php';
require KU_ROOTDIR . 'inc/classes/posting.class.php';
require KU_ROOTDIR . 'inc/classes/parse.class.php';
require KU_ROOTDIR . 'inc/classes/cloud20.class.php';
$bans_class = new Bans();
$parse_class = new Parse();
$posting_class = new Posting();
require KU_ROOTDIR . '/inc/ElephantIO/Client.php';
use ElephantIO\Client as Elephant;
$clitoken = $_POST['token'];
function elephant_emit($id="???") {
if($id[0] == '_') {
$cl20 = new Cloud20();
$cl20->rebuild();
}
if(KU_REACT_ENA)
try {
$elephant = new Elephant(KU_LOCAL_REACT_API, 'socket.io', 1, false, true, true);
$elephant->init();
$elephant->send(
Elephant::TYPE_EVENT,
null,
null,
json_encode(array('name' => 'srvmsg', 'args' => array('srvtoken' => KU_REACT_SRVTOKEN, 'room' => $id, 'clitoken' => $_POST['token'], 'timestamp' => time() )))
);
$elephant->close();
} catch(Exception $e) {
return;
}
}
// {{{ Module loading
modules_load_all();
// }}}
// {{{ GET/POST board send check
// In some cases, the board value is sent through post, others get
if (isset($_POST['board']) || isset($_GET['board'])) $_POST['board'] = (isset($_GET['board'])) ? $_GET['board'] : $_POST['board'];
// }}}
// If the script was called using a board name:
if (isset($_POST['board'])) {
$board_name = $tc_db->GetOne("SELECT `name` FROM `" . KU_DBPREFIX . "boards` WHERE `name` = " . $tc_db->qstr($_POST['board']) . "");
if (!empty($board_name)) {
$board_class = new Board($board_name);
if (!empty($board_class->board['locale'])) {
changeLocale($board_class->board['locale']);
}
} else {
do_redirect(KU_WEBPATH);
}
} else {
// A board being supplied is required for this script to function
do_redirect(KU_WEBPATH);
}
// {{{ Expired ban removal, and then existing ban check on the current user
$bans_class->BanCheck($_SERVER['REMOTE_ADDR'], $board_class->board['name']);
// }}}
$oekaki = $posting_class->CheckOekaki();
$is_oekaki = empty($oekaki) ? false : true;
/* Ensure that UTF-8 is used on some of the post variables */
$posting_class->UTF8Strings();
/* Check if the user sent a valid post (image for thread, image/message for reply, etc) */
if ($posting_class->CheckValidPost($is_oekaki)) {
$tc_db->Execute("START TRANSACTION");
$posting_class->CheckReplyTime();
if($_POST['replythread'] == 0) $posting_class->CheckNewThreadTime();
$posting_class->CheckMessageLength();
$posting_class->CheckCaptcha();
$posting_class->CheckBannedHash();
$post_isreply = $posting_class->CheckIsReply();
$imagefile_name = isset($_FILES['imagefile']) ? $_FILES['imagefile']['name'] : '';
if ($post_isreply) {
list($thread_replies, $thread_locked, $thread_replyto) = $posting_class->GetThreadInfo($_POST['replythread']);
} else {
if ($board_class->board['type'] != 1 && (($board_class->board['uploadtype'] == '1' || $board_class->board['uploadtype'] == '2') && $board_class->board['embeds_allowed'] != '')) {
if (isset($_POST['embed'])) {
if ($_POST['embed'] == '') {
if (($board_class->board['uploadtype'] == '1' && $imagefile_name == '') || $board_class->board['uploadtype'] == '2') {
exitWithErrorPage('Please enter an embed ID.');
}
}
} else {
exitWithErrorPage('Please enter an embed ID.');
}
}
$thread_replies = 0;
$thread_locked = 0;
$thread_replyto = 0;
}
list($post_name, $post_email, $post_subject, $post_tag) = $posting_class->GetFields();
$post_password = isset($_POST['postpassword']) ? $_POST['postpassword'] : '';
if ($board_class->board['type'] == 1) {
if ($post_isreply) {
$post_subject = '';
} else {
$posting_class->CheckNotDuplicateSubject($post_subject);
}
}
list($user_authority, $flags) = $posting_class->GetUserAuthority();
$post_fileused = false;
$post_autosticky = false;
$post_autolock = false;
$post_displaystaffstatus = false;
$file_is_special = false;
if (isset($_POST['formatting'])) {
if ($_POST['formatting'] == 'aa') {
$_POST['message'] = '[aa]' . $_POST['message'] . '[/aa]';
}
if (isset($_POST['rememberformatting'])) {
setcookie('kuformatting', urldecode($_POST['formatting']), time() + 31556926, '/', KU_DOMAIN);
}
}
$results = $tc_db->GetAll("SELECT id FROM `" . KU_DBPREFIX . "posts` WHERE `boardid` = " . $board_class->board['id'] . " ORDER BY id DESC LIMIT 1");
if (count($results) > 0)
$nextid = $results[0]['id'] + 1;
else
$nextid = 1;
$parse_class->id = $nextid;
$ua = ($board_class->board['useragent']) ? htmlspecialchars($_SERVER['HTTP_USER_AGENT']) : false;
$dice = (in_array($_POST['board'], explode('|', KU_DICE_ENABLED))) ? true : false;
// If they are just a normal user, or vip...
if (isNormalUser($user_authority)) {
// If the thread is locked
if ($thread_locked == 1) {
// Don't let the user post
exitWithErrorPage(_gettext('Sorry, this thread is locked and can not be replied to.'));
}
$post_message = $parse_class->ParsePost($_POST['message'], $board_class->board['name'], $board_class->board['type'], $thread_replyto, $board_class->board['id'], false, $ua, $board_class->board['dice']);
// Or, if they are a moderator/administrator...
} else {
// If they checked the D checkbox, set the variable to tell the script to display their staff status (Admin/Mod) on the post during insertion
if (isset($_POST['displaystaffstatus'])) {
$post_displaystaffstatus = true;
}
// If they checked the RH checkbox, set the variable to tell the script to insert the post as-is...
if (isset($_POST['rawhtml'])) {
$post_message = $_POST['message'];
// Otherwise, parse it as usual...
} else {
$post_message = $parse_class->ParsePost($_POST['message'], $board_class->board['name'], $board_class->board['type'], $thread_replyto, $board_class->board['id'], false, $ua, $board_class->board['dice']);
// (Moved) check against blacklist and detect flood
}
// If they checked the L checkbox, set the variable to tell the script to lock the post after insertion
if (isset($_POST['lockonpost'])) {
$post_autolock = true;
}
// If they checked the S checkbox, set the variable to tell the script to sticky the post after insertion
if (isset($_POST['stickyonpost'])) {
$post_autosticky = true;
}
if (isset($_POST['usestaffname'])) {
$_POST['name'] = md5_decrypt($_POST['modpassword'], KU_RANDOMSEED);
$post_name = md5_decrypt($_POST['modpassword'], KU_RANDOMSEED);
}
}
$posting_class->postParseCheckText($post_message, $board_class->board['name'], $board_class->board['id']);
$posting_class->CheckBadUnicode($post_name, $post_email, $post_subject, $post_message);
$post_tag = $posting_class->GetPostTag();
if ($post_isreply) {
if ($imagefile_name == '' && !$is_oekaki && $post_message == '') {
exitWithErrorPage(_gettext('An image, or message, is required for a reply.'));
}
} else {
if ($imagefile_name == '' && !$is_oekaki && ((!isset($_POST['nofile'])&&$board_class->board['enablenofile']==1) || $board_class->board['enablenofile']==0) && ($board_class->board['type'] == 0 || $board_class->board['type'] == 2 || $board_class->board['type'] == 3)) {
if (!isset($_POST['embed']) && $board_class->board['uploadtype'] != 1) {
exitWithErrorPage(_gettext('A file is required for a new thread. If embedding is allowed, either a file or embed ID is required.'));
}
}
}
if (isset($_POST['nofile'])&&$board_class->board['enablenofile']==1) {
if ($post_message == '') {
exitWithErrorPage('A message is required to post without a file.');
}
}
if ($board_class->board['type'] == 1 && !$post_isreply && $post_subject == '') {
exitWithErrorPage('A subject is required to make a new thread.');
}
if ($board_class->board['locked'] == 0 || ($user_authority > 0 && $user_authority != 3)) {
require_once KU_ROOTDIR . 'inc/classes/upload.class.php';
$upload_class = new Upload();
if ($post_isreply) {
$upload_class->isreply = true;
}
if ((!isset($_POST['nofile']) && $board_class->board['enablenofile'] == 1) || $board_class->board['enablenofile'] == 0) {
$upload_class->HandleUpload();
}
if ($board_class->board['forcedanon'] == '1') {
if ($user_authority == 0 || $user_authority == 3) {
$post_name = '';
/*$post_subject = '';*/
}
}
$nameandtripcode = calculateNameAndTripcode($post_name);
if (is_array($nameandtripcode)) {
$name = $nameandtripcode[0];
$tripcode = $nameandtripcode[1];
} else {
$name = $post_name;
$tripcode = '';
}
$filetype_withoutdot = substr($upload_class->file_type, 1);
$post_passwordmd5 = ($post_password == '') ? '' : md5($post_password);
if ($post_autosticky == true) {
if ($thread_replyto == 0) {
$sticky = 1;
} else {
$result = $tc_db->Execute("UPDATE `" . KU_DBPREFIX . "posts` SET `stickied` = '1' WHERE `boardid` = " . $board_class->board['id'] . " AND `id` = '" . $thread_replyto . "'");
$sticky = 0;
}
} else {
$sticky = 0;
}
if ($post_autolock == true) {
if ($thread_replyto == 0) {
$lock = 1;
} else {
$tc_db->Execute("UPDATE `" . KU_DBPREFIX . "posts` SET `locked` = '1' WHERE `boardid` = " . $board_class->board['id'] . " AND `id` = '" . $thread_replyto . "'");
$lock = 0;
}
} else {
$lock = 0;
}
if (!$post_displaystaffstatus && $user_authority > 0 && $user_authority != 3) {
$user_authority_display = 0;
} elseif ($user_authority > 0) {
$user_authority_display = $user_authority;
} else {
$user_authority_display = 0;
}
if ((file_exists(KU_BOARDSDIR . $board_class->board['name'] . '/src/' . $upload_class->file_name . $upload_class->file_type) && file_exists(KU_BOARDSDIR . $board_class->board['name'] . '/thumb/' . $upload_class->file_name . 's' . $upload_class->file_type)) || ($file_is_special && file_exists(KU_BOARDSDIR . $board_class->board['name'] . '/src/' . $upload_class->file_name . $upload_class->file_type)) || $post_fileused == false) {
$post = array();
//#snivystuff country!
$post['country'] = isset($_SERVER["HTTP_CF_IPCOUNTRY"]) ? strtolower($_SERVER["HTTP_CF_IPCOUNTRY"]) : 'xx';
$post['board'] = $board_class->board['name'];
$post['name'] = substr($name, 0, 74);
$post['name_save'] = true;
$post['tripcode'] = $tripcode;
$post['email'] = substr($post_email, 0, 74);
// First array is the converted form of the japanese characters meaning sage, second meaning age
$ords_email = unistr_to_ords($post_email);
if (strtolower($_POST['em']) != 'sage' && $ords_email != array(19979, 12370) && strtolower($_POST['em']) != 'age' && $ords_email != array(19978, 12370) && $_POST['em'] != 'return' && $_POST['em'] != 'noko') {
$post['email_save'] = true;
} else {
$post['email_save'] = false;
}
$post['subject'] = substr($post_subject, 0, 74);
$post['message'] = $post_message;
$post = hook_process('posting', $post);
if ($is_oekaki) {
if (file_exists(KU_BOARDSDIR . $board_class->board['name'] . '/src/' . $upload_class->file_name . '.pch')) {
$post['message'] .= '<br /><small><a href="' . KU_CGIPATH . '/animation.php?board=' . $board_class->board['name'] . '&amp;id=' . $upload_class->file_name . '">' . _gettext('View animation') . '</a></small>';
}
}
if ($thread_replyto != '0') {
if ($post['message'] == '' && KU_NOMESSAGEREPLY != '') {
$post['message'] = KU_NOMESSAGEREPLY;
}
} else {
if ($post['message'] == '' && KU_NOMESSAGETHREAD != '') {
$post['message'] = KU_NOMESSAGETHREAD;
}
}
$post_class = new Post(0, $board_class->board['name'], $board_class->board['id'], true);
$post_id = $post_class->Insert($thread_replyto, $post['name'], $post['tripcode'], $post['email'], $post['subject'], addslashes($post['message']), $upload_class->file_name, $upload_class->original_file_name, $filetype_withoutdot, $upload_class->file_md5, $upload_class->imgWidth, $upload_class->imgHeight, $upload_class->file_size, $upload_class->imgWidth_thumb, $upload_class->imgHeight_thumb, $post_passwordmd5, time(), time(), $_SERVER['REMOTE_ADDR'], $user_authority_display, $sticky, $lock, $board_class->board['id'], $post['country']);
if ($user_authority > 0 && $user_authority != 3) {
$modpost_message = 'Modposted #<a href="' . KU_BOARDSFOLDER . $board_class->board['name'] . '/res/';
if ($post_isreply) {
$modpost_message .= $thread_replyto;
} else {
$modpost_message .= $post_id;
}
$modpost_message .= '.html#' . $post_id . '">' . $post_id . '</a> in /'.$_POST['board'].'/ with flags: ' . $flags . '.';
management_addlogentry($modpost_message, 1, md5_decrypt($_POST['modpassword'], KU_RANDOMSEED));
}
if ($post['name_save'] && isset($_POST['name'])) {
setcookie('name', urldecode($_POST['name']), time() + 31556926, '/', KU_DOMAIN);
}
if ($post['email_save']) {
setcookie('email', urldecode($post['email']), time() + 31556926, '/', KU_DOMAIN);
}
setcookie('postpassword', urldecode($_POST['postpassword']), time() + 31556926, '/');
} else {
exitWithErrorPage(_gettext('Could not copy uploaded image.'));
}
// If the user replied to a thread, and they weren't sage-ing it...
if ($thread_replyto != '0' && strtolower($_POST['em']) != 'sage' && unistr_to_ords($_POST['em']) != array(19979, 12370)) {
// And if the number of replies already in the thread are less than the maximum thread replies before perma-sage...
if ($thread_replies <= $board_class->board['maxreplies']) {
// Bump the thread
$tc_db->Execute("UPDATE `" . KU_DBPREFIX . "posts` SET `bumped` = '" . time() . "' WHERE `boardid` = " . $board_class->board['id'] . " AND `id` = '" . $thread_replyto . "'");
}
}
// If the user replied to a thread he is watching, update it so it doesn't count his reply as unread
if (KU_WATCHTHREADS && $thread_replyto != '0') {
$viewing_thread_is_watched = $tc_db->GetOne("SELECT COUNT(*) FROM `" . KU_DBPREFIX . "watchedthreads` WHERE `ip` = '" . $_SERVER['REMOTE_ADDR'] . "' AND `board` = '" . $board_class->board['name'] . "' AND `threadid` = '" . $thread_replyto . "'");
if ($viewing_thread_is_watched > 0) {
$newestreplyid = $tc_db->GetOne('SELECT `id` FROM `'.KU_DBPREFIX.'posts` WHERE `boardid` = ' . $board_class->board['id'] . ' AND `IS_DELETED` = 0 AND `parentid` = '.$thread_replyto.' ORDER BY `id` DESC LIMIT 1');
$tc_db->Execute("UPDATE `" . KU_DBPREFIX . "watchedthreads` SET `lastsawreplyid` = " . $newestreplyid . " WHERE `ip` = '" . $_SERVER['REMOTE_ADDR'] . "' AND `board` = '" . $board_class->board['name'] . "' AND `threadid` = '" . $thread_replyto . "'");
}
}
$tc_db->Execute("COMMIT");
// Trim any threads which have been pushed past the limit, or exceed the maximum age limit
TrimToPageLimit($board_class->board);
// Regenerate board pages
$board_class->RegeneratePages();
if ($thread_replyto == '0') {
// Regenerate the thread
$board_class->RegenerateThreads($post_id);
elephant_emit($board_class->board['name'].':'.$post_id);
} else {
// Regenerate the thread
$board_class->RegenerateThreads($thread_replyto);
elephant_emit($board_class->board['name'].':'.$thread_replyto);
}
} else {
exitWithErrorPage(_gettext('Sorry, this board is locked and can not be posted in.'));
}
} elseif ((isset($_POST['deletepost']) || isset($_POST['reportpost']) || isset($_POST['moddelete'])) && isset($_POST['post'])) {
$ismod = false;
// Initialize the post class
foreach ($_POST['post'] as $val) {
$post_class = new Post($val, $board_class->board['name'], $board_class->board['id']);
if (isset($_POST['reportpost'])) {
// They clicked the Report button
if ($board_class->board['enablereporting'] == 1) {
$post_reported = $post_class->post['isreported'];
if ($post_reported === 'cleared') {
echo _gettext('That post has been cleared as not requiring any deletion.') . '<br />';
} elseif ($post_reported) {
echo _gettext('That post is already in the report list.') . '<br />';
} else {
if ($post_class->Report()) {
echo _gettext('Post successfully reported.') . '<br />';
} else {
echo _gettext('Unable to report post. Please go back and try again.') . '<br />';
}
}
} else {
echo _gettext('This board does not allow post reporting.') . '<br />';
}
} elseif (isset($_POST['postpassword']) || ( isset($_POST['moddelete']) && (require_once KU_ROOTDIR . 'inc/classes/manage.class.php') && Manage::CurrentUserIsModeratorOfBoard($board_class->board['name'], $_SESSION['manageusername']) && $ismod = true)) {
// They clicked the Delete button
if ($_POST['postpassword'] != '' || $ismod) {
if (md5($_POST['postpassword']) == $post_class->post['password'] || $ismod) {
if (isset($_POST['fileonly'])) {
if ($post_class->post['file'] != '' && $post_class->post['file'] != 'removed') {
$post_class->DeleteFile();
$board_class->RegeneratePages();
if ($post_class->post['parentid'] != 0) {
$board_class->RegenerateThreads($post_class->post['parentid']);
}
echo _gettext('Image successfully deleted from your post.') . '<br />';
} else {
echo _gettext('Your post already doesn\'t have an image!') . '<br />';
}
} else {
if ($post_class->Delete()) {
if ($post_class->post_parentid != '0') {
$board_class->RegenerateThreads($post_class->post['parentid']);
}
$board_class->RegeneratePages();
echo _gettext('Post successfully deleted.') . '<br />';
} else {
echo _gettext('There was an error in trying to delete your post') . '<br />';
}
}
} else {
echo _gettext('Incorrect password.') . '<br />';
}
} else {
do_redirect(KU_BOARDSPATH . '/' . $board_class->board['name'] . '/');
}
}
}
do_redirect(KU_BOARDSPATH . '/' . $board_class->board['name'] . '/');
die();
} elseif (isset($_GET['postoek'])) {
$board_class->OekakiHeader($_GET['replyto'], $_GET['postoek']);
die();
} else {
do_redirect(KU_BOARDSPATH . '/' . $board_class->board['name'] . '/');
}
if (KU_RSS) {
require_once KU_ROOTDIR . 'inc/classes/rss.class.php';
$rss_class = new RSS();
print_page(KU_BOARDSDIR.$_POST['board'].'/rss.xml',$rss_class->GenerateRSS($_POST['board'], $board_class->board['id']),$_POST['board']);
}
if( $_POST['redirecttothread'] == 1 || $_POST['em'] == 'return' || $_POST['em'] == 'noko') {
setcookie('tothread', 'on', time() + 31556926, '/');
if ($thread_replyto == "0") {
do_redirect(KU_BOARDSPATH . '/' . $board_class->board['name'] . '/res/' . $post_id . '.html', true, $imagefile_name);
} else {
do_redirect(KU_BOARDSPATH . '/' . $board_class->board['name'] . '/res/' . $thread_replyto . '.html', true, $imagefile_name);
}
} else {
setcookie('tothread', 'off', time() + 31556926, '/');
do_redirect(KU_BOARDSPATH . '/' . $board_class->board['name'] . '/', true, $imagefile_name);
}

1
boards.html Normal file
View File

@ -0,0 +1 @@
[ edit this ]

1
boards20.json Normal file
View File

@ -0,0 +1 @@
null

123
captcha.php Normal file
View File

@ -0,0 +1,123 @@
<?php
define ( 'DOCUMENT_ROOT', dirname ( __FILE__ ) );
define("img_dir", DOCUMENT_ROOT."/captcha/");
include("nrand.php");
$ltrs = rand(4, 7);
if($_COOKIE['captchalang'] == 'en') $captcha = english_word($ltrs);
elseif($_COOKIE['captchalang'] == 'num') {
$ltrs = rand(4, 7);
for ($i=0; $i < $ltrs; $i++) {
$captcha .= rand(0, 9);
}
}
else $captcha = generate_code($ltrs);
session_start();
function img_code($code) {
if(isset($_COOKIE['kustyle']))
switch ($_COOKIE['kustyle']) {
case "Summer":
$scolor=array(17, 119, 67);
break;
case "Winter":
$scolor=array(33, 0, 127);
break;
case "Modern":
$scolor=array(33, 93, 95);
break;
default: $scolor=array(85,85,85);
break;
}
else {
$scolor=array(85,85,85);
}
$linenum = 5;
$img_arr = array("1.png");
$font_arr = array();
$font_arr[0]["fname"] = "OpenSans-Light.ttf";
$font_arr[0]["size"] = 20;
$n = rand(0,sizeof($font_arr)-1);
$img_fn = $img_arr[rand(0, sizeof($img_arr)-1)];
$im=imagecreatefrompng(dirname(__FILE__)."/captcha/back.png");
$color = imagecolorallocate($im, 100, 100, 100);
$x = -15;
mb_internal_encoding("UTF-8");
for($i = 0; $i < mb_strlen($code); $i++) {
$y = rand(-15, 15);
$z = 24;
$x+=20;
$letter=mb_substr($code, $i, 1);
imagettftext ($im, $font_arr[$n]["size"], $y, $x, $z, $color, img_dir.$font_arr[$n]["fname"], $letter);
$_SESSION['security_code'] = $code;
}
for ($i=0; $i<$linenum; $i++)
{
//$color = imagecolorallocate($im, rand(0, 255), rand(0, 200), rand(0, 255));
imageline($im, rand(0, 20), rand(0, 70), rand(120, 150), rand(0, 70), $color);
}
$im=opsmaz($im,$scolor);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s", 10000) . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type:image/png");
ImagePNG ($im);
ImageDestroy ($im);
}
function getKeyString(){
return $cap->keystring;
}
function opsmaz($img,$ncolor){
$foreground_color =array(254,254,254);
$background_color =array(254,254,254);
$width=imagesx($img);
$height=imagesy($img);
$center=$width/2;
$img2=imagecreatetruecolor($width, $height);
$foreground=imagecolorresolve($img2, $foreground_color[0], $foreground_color[1], $foreground_color[2]);
$background=imagecolorresolve($img2, $background_color[0], $background_color[1], $background_color[2]);
imagefilledrectangle($img2, 0, 0, $width-1, $height-1, $background);
imagefilledrectangle($img2, 0, $height, $width-1, $height+12, $foreground);
$rand1=mt_rand(00000, 750000)/10000000;
$rand2=mt_rand(0000000, 750000)/10000000;
$rand3=mt_rand(000000, 750000)/10000000;
$rand4=mt_rand(000000, 750000)/10000000;
$rand5=mt_rand(0, 31415926)/1000000;
$rand6=mt_rand(0, 31415926)/1000000;
$rand7=mt_rand(0, 31415926)/1000000;
$rand8=mt_rand(0, 31415926)/1000000;
$rand9=mt_rand(300, 330)/110;
$rand10=mt_rand(300, 330)/110;
for($x=0;$x<$width;$x++){
for($y=0;$y<$height;$y++){
$sx=$x+(sin($x*$rand1+$rand5)+sin($y*$rand3+$rand6))*$rand9-$width/2+$center+1;
$sy=$y+(sin($x*$rand2+$rand7)+sin($y*$rand4+$rand8))*$rand10;
if($sx<0 || $sy<0 || $sx>=$width-1 || $sy>=$height-1){
continue;
}else{
$color=imagecolorat($img, $sx, $sy) & 0xFF;
$color_x=imagecolorat($img, $sx+1, $sy) & 0xFF;
$color_y=imagecolorat($img, $sx, $sy+1) & 0xFF;
$color_xy=imagecolorat($img, $sx+1, $sy+1) & 0xFF;
}
if($color==255 && $color_x==255 && $color_y==255 && $color_xy==255){
continue;
}else if($color==0 && $color_x==0 && $color_y==0 && $color_xy==0){
$newred=$foreground_color[0];
$newgreen=$foreground_color[1];
$newblue=$foreground_color[2];
}else{
$newred=$ncolor[0];
$newgreen=$ncolor[1];
$newblue=$ncolor[2];
}
imagesetpixel($img2, $x, $y, imagecolorallocate($img2, $newred, $newgreen, $newblue));
imagecolortransparent($img2, imagecolorallocate($img2, 254,254,254));
}
}
return $img2;
}
$_SESSION['captchatime'] = time();
img_code($captcha);
?>

BIN
captcha/OpenSans-Light.ttf Normal file

Binary file not shown.

BIN
captcha/back.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 B

BIN
clear.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 B

10
cloud20.php Normal file
View File

@ -0,0 +1,10 @@
<?php
require 'config.php';
$boardid20 = $tc_db->GetOne('SELECT `id` FROM `'. KU_DBPREFIX .'sections` WHERE `abbreviation`="20"');
$boards20 = $tc_db->GetAll('SELECT `id`, `name`, `desc` FROM `'. KU_DBPREFIX .'boards` WHERE `section` = '.$boardid20.' ORDER BY `name` ASC');
foreach($boards20 as &$b20) {
$postcount = $tc_db->GetOne('SELECT COUNT(1) FROM `'. KU_DBPREFIX .'posts` WHERE `boardid`='.$b20['id'].' AND `timestamp` >= '.strtotime(KU_20_CLOUDTIME));
$results[] = array('name'=>$b20['name'], 'desc'=>$b20['desc'], 'postcount'=>$postcount);
}unset($b20);
exit(json_encode($results));
?>

323
config.php Normal file
View File

@ -0,0 +1,323 @@
<?php
/*
* This file is part of kusaba.
*
* kusaba is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* kusaba is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* kusaba; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* Script configuration
*
* Tells the script what to call itself, where the database and other things are
* located, along with define what features to enable.
*
* @package kusaba
*/
/*
To enable a feature, change the value to true:
define('KU_INSTANTREDIRECT', true);
To disable a feature, change the value to false:
define('KU_INSTANTREDIRECT', false;
To change the text value of a configuration, edit the text in the single quotes:
define('KU_NAME', 'kusaba');
Becomes:
define('KU_NAME', 'Mychan');
Warning: Do not insert single quotes in the value yourself, or else you will cause problems. To overcome this, you use what is called escaping, which is the process of adding a backslash before the single quote, to show it is part of the string:
define('KU_NAME', 'Jason\'s chan');
*/
// Sets error reporting to hide notices.
error_reporting(E_ALL ^ E_NOTICE);
if (!headers_sent()) {
header('Content-Type: text/html; charset=utf-8');
}
$cf = array();
// Caching (this needs to be set at the start because if enabled, it skips the rest of the configuration process)
$cf['KU_APC'] = false;
$cache_loaded = false;
if ($cf['KU_APC']) {
if (apc_load_constants('config')) {
$cache_loaded = true;
}
}
if (!$cache_loaded) {
// Custom shit!
$cf['KU_REACT_ENA'] = false;
$cf['KU_LOCAL_REACT_API'] = 'http://127.0.0.1:1337';
$cf['KU_CLI_REACT_API'] = 'http://example.com:1337';
$cf['KU_REACT_SRVTOKEN'] = 'ENTERRANDOMSHIT';
$cf['KU_CSSVER'] = '001';
$cf['KU_JSVER'] = '001';
$cf['KU_CAPTCHALIFE'] = 18; // Captcha time-to-live in seconds
$cf['KU_20_BOARDSLIMIT'] = 5; // How many 2.0 boards a user can create
$cf['KU_20_CLOUDTIME'] = "-24 hours";
$cf['KU_SUPPORTED_LOCALES'] = 'ru|en'; //
// Database
$cf['KU_DBTYPE'] = 'mysqli'; // Database type. Valid values are mysql and mysqli (reccomended for mysql).
// PostgreSQL is also supported. Supported values are postgres64, postgres7 and postgres8. Only postgres8 is tested.
// SQLite is also supported. Set to sqlite to use. SQLite will not use any database software, only a single file.
$cf['KU_DBHOST'] = 'localhost'; // Database hostname. On SQLite this has no effect.
$cf['KU_DBDATABASE'] = '0chan'; // Database... database. On SQLite this will be the path to your database file. Secure this file.
$cf['KU_DBUSERNAME'] = 'root'; // Database username. On SQLite this has no effect.
$cf['KU_DBPASSWORD'] = ''; // Database password. On SQLite this has no effect.
$cf['KU_DBPREFIX'] = ''; // Database table prefix
$cf['KU_DBUSEPERSISTENT'] = false; // Use persistent connection to database
// Imageboard info
$cf['KU_NAME'] = 'Øchan'; // The name of your site
$cf['KU_SLOGAN'] = '<em>Oops! Divided by zero!</em>'; // Site slogan, set to nothing to disable its display
$cf['KU_HEADERURL'] = ''; // Full URL to the header image (or rotation script) to be displayed, can be left blank for no image
$cf['KU_IRC'] = ''; // IRC info, which will be displayed in the menu. Leave blank to remove it
$cf['KU_BANREASON'] = ''; // This is the default ban reason that will automatically fill in the ban reason box
// Paths and URLs
// Main installation directory
$cf['KU_ROOTDIR'] = realpath(dirname(__FILE__))."/"; // Full system path of the folder containing kusaba.php, with trailing slash. The default value set here should be OK.. If you need to change it, you should already know what the full path is anyway.
$cf['KU_WEBFOLDER'] = '/'; // The path from the domain of the board to the folder which kusaba is in, including the trailing slash. Example: "http://www.yoursite.com/misc/kusaba/" would have a $cf['KU_WEBFOLDER'] of "/misc/kusaba/"
$cf['KU_WEBPATH'] = 'http://example.com'; // The path to the index folder of kusaba, without trailing slash. Example: http://www.yoursite.com
$cf['KU_DOMAIN'] = '.example.com'; // Used in cookies for the domain parameter. Should be a period and then the top level domain, which will allow the cookies to be set for all subdomains. For http://www.randomchan.org, the domain would be .randomchan.org; http://zachchan.freehost.com would be zach.freehost.com
// Board subdomain/alternate directory (optional, change to enable)
// DO NOT CHANGE THESE IF YOU DO NOT KNOW WHAT YOU ARE DOING!!
$cf['KU_BOARDSDIR'] = $cf['KU_ROOTDIR'];
$cf['KU_BOARDSFOLDER'] = $cf['KU_WEBFOLDER'];
$cf['KU_BOARDSPATH'] = $cf['KU_WEBPATH'];
// CGI subdomain/alternate directory (optional, change to enable)
// DO NOT CHANGE THESE IF YOU DO NOT KNOW WHAT YOU ARE DOING!!
$cf['KU_CGIDIR'] = $cf['KU_BOARDSDIR'];
$cf['KU_CGIFOLDER'] = $cf['KU_BOARDSFOLDER'];
$cf['KU_CGIPATH'] = $cf['KU_BOARDSPATH'];
// Coralized URLs (optional, change to enable)
$cf['KU_WEBCORAL'] = ''; // Set to the coralized version of your webpath to enable. If not set to '', URLs which can safely be cached will be coralized, and will use the Coral Content Distribution Network. Example: http://www.kusaba.org becomes http://www.kusaba.org.nyud.net, http://www.crapchan.org/kusaba becomes http://www.crapchan.org.nyud.net/kusaba
$cf['KU_BOARDSCORAL'] = '';
// Templates
$cf['KU_TEMPLATEDIR'] = $cf['KU_ROOTDIR'] . 'dwoo/templates'; // Dwoo templates directory
$cf['KU_CACHEDTEMPLATEDIR'] = $cf['KU_ROOTDIR'] . 'dwoo/templates_c'; // Dwoo compiled templates directory. This folder MUST be writable (you may need to chmod it to 755). Set to '' to disable template caching
// CSS styles
$cf['KU_STYLES'] = 'summer:winter:autumn:photon:modern'; // Styles which are available to be used for the boards, separated by colons, in lower case. These will be displayed next to [Home] [Manage] if KU_STYLESWIKUHER is set to true
$cf['KU_DEFAULTSTYLE'] = 'autumn'; // If Default is selected in the style list in board options, it will use this style. Should be lower case
$cf['KU_STYLESWITCHER'] = true; // Whether or not to display the different styles in a clickable switcher at the top of the board
$cf['KU_DROPSWITCHER'] = false; // Whether or not to use a dropdown style switcher. False is use plaintext switcher, true is dropdown.
$cf['KU_TXTSTYLES'] = 'futatxt:buritxt'; // Styles which are available to be used for the boards, separated by colons, in lower case
$cf['KU_DEFAULTTXTSTYLE'] = 'futatxt'; // If Default is selected in the style list in board options, it will use this style. Should be lower case
$cf['KU_TXTSTYLESWITCHER'] = true; // Whether or not to display the different styles in a clickable switcher at the top of the board
$cf['KU_MENUTYPE'] = 'normal'; // Type of display for the menu. normal will add the menu styles and such as it normally would, plain will not use the styles, and will look rather boring
$cf['KU_MENUSTYLES'] = 'summer:winter:autumn:photon'; // Menu styles
$cf['KU_DEFAULTMENUSTYLE'] = 'autumn'; // Default menu style
$cf['KU_MENUSTYLESWITCHER'] = true; // Whether or not to display the different styles in a clickable switcher in the menu
// Limitations
$cf['KU_NEWTHREADDELAY'] = 30; // Minimum time in seconds a user must wait before posting a new thread again
$cf['KU_REPLYDELAY'] = 7; // Minimum time in seconds a user must wait before posting a reply again
$cf['KU_LINELENGTH'] = 150; // Used when cutting long post messages on pages and placing the message too long notification
// Image handling
$cf['KU_THUMBWIDTH'] = 200; // Maximum thumbnail width
$cf['KU_THUMBHEIGHT'] = 200; // Maximum thumbnail height
$cf['KU_REPLYTHUMBWIDTH'] = 125; // Maximum thumbnail width (reply)
$cf['KU_REPLYTHUMBHEIGHT'] = 125; // Maximum thumbnail height (reply)
$cf['KU_CATTHUMBWIDTH'] = 50; // Maximum thumbnail width (catalog)
$cf['KU_CATTHUMBHEIGHT'] = 50; // Maximum thumbnail height (catalog)
$cf['KU_THUMBMETHOD'] = 'gd'; // Method to use when thumbnailing images in jpg, gif, or png format. Options available: gd, imagemagick
$cf['KU_ANIMATEDTHUMBS'] = false; // Whether or not to allow animated thumbnails (only applies if using imagemagick)
// Post handling
$cf['KU_NEWWINDOW'] = true; // When a user clicks a thumbnail, whether to open the link in a new window or not
$cf['KU_MAKELINKS'] = true; // Whether or not to turn http:// links into clickable links
$cf['KU_NOMESSAGETHREAD'] = ''; // Text to set a message to if a thread is made with no text
$cf['KU_NOMESSAGEREPLY'] = ''; // Text to set a message to if a reply is made with no text
// Post display
$cf['KU_THREADS'] = 10; // Number of threads to display on a board page
$cf['KU_THREADSTXT'] = 15; // Number of threads to display on a text board front page
$cf['KU_REPLIES'] = 3; // Number of replies to display on a board page
$cf['KU_REPLIESSTICKY'] = 1; // Number of replies to display on a board page when a thread is stickied
$cf['KU_THUMBMSG'] = false; // Whether or not to display the "Thumbnail displayed, click image for full size." message on posts with images
$cf['KU_BANMSG'] = '<br /><font color="#FF0000"><b>(USER WAS BANNED FOR THIS POST)</b></font>'; // The text to add at the end of a post if a ban is placed and "Add ban message" is checked
$cf['KU_TRADITIONALREAD'] = false; // Whether or not to use the traditional style for multi-quote urls. Traditional: read.php/board/thread/posts, Non-traditional: read.php?b=board&t=thread&p=posts
$cf['KU_YOUTUBEWIDTH'] = 200; // Width to display embedded YouTube videos
$cf['KU_YOUTUBEHEIGHT'] = 164; // Height to display embedded YouTube videos
// Pages
$cf['KU_FIRSTPAGE'] = 'board.html'; // Filename of the first page of a board. Only change this if you are willing to maintain the .htaccess files for each board directory (they are created with a DirectoryIndex board.html, change them if you change this)
$cf['KU_DIRTITLE'] = true; // Whether or not to place the board directory in the board's title and at the top of the page. true would render as "/b/ - Random", false would render as "Random"
// File tagging
$cf['KU_TAGS'] = array('Japanese' => 'J',
'Anime' => 'A',
'Game' => 'G',
'Loop' => 'L',
'Other' => '*'); // Used only in Upload imageboards. These are the tags which a user may choose to use as they are posting a file. If you wish to disable tagging on Upload imageboards, set this to ''
// Special Tripcodes
$cf['KU_TRIPS'] = array('#changeme' => 'changeme',
'#changeme2' => 'changeme2'); // Special tripcodes which can have a predefined output. Do not include the initial ! in the output. Maximum length for the output is 30 characters. Set to array(); to disable
// Extra features
$cf['KU_RSS'] = true; // Whether or not to enable the generation of rss for each board and modlog
$cf['KU_EXPAND'] = true; // Whether or not to add the expand button to threads viewed on board pages
$cf['KU_QUICKREPLY'] = true; // Whether or not to add quick reply links on posts
$cf['KU_WATCHTHREADS'] = false; // Whether or not to add thread watching capabilities
$cf['KU_FIRSTLAST'] = false; // Whether or not to generate extra files for the first 100 posts/last 50 posts
$cf['KU_BLOTTER'] = true; // Whether or not to enable the blotter feature
$cf['KU_SITEMAP'] = false; // Whether or not to enable automatic sitemap generation (you will still need to link the search engine sites to the sitemap.xml file)
$cf['KU_APPEAL'] = false; // Whether or not to enable the appeals system
// Misc config
$cf['KU_MODLOGDAYS'] = 7; // Days to keep modlog entries before removing them
$cf['KU_RANDOMSEED'] = 'ENTERANOTHERRANDOMSHIT'; // Type a bunch of random letters/numbers here, any large amount (35+ characters) will do
$cf['KU_STATICMENU'] = false; // Whether or not to generate the menu files as static files, instead of linking to menu.php. Enabling this will reduce load, however some users have had trouble with getting the files to generate
$cf['KU_GENERATEBOARDLIST'] = true; // Set to true to automatically make the board list which is displayed ad the top and bottom of the board pages, or false to use the boards.html file
// Language / timezone / encoding
$cf['KU_LOCALE'] = 'ru'; // The locale of kusaba you would like to use. Locales available: en, de, et, es, fi, pl, nl, nb, ro, ru, it, ja
$cf['KU_CHARSET'] = 'UTF-8'; // The character encoding to mark the pages as. This must be the same in the .htaccess file (AddCharset charsethere .html and AddCharset charsethere .php) to function properly. Only UTF-8 and Shift_JIS have been tested
putenv('TZ=Europe/Moscow'); // The time zone which the server resides in
$cf['KU_DATEFORMAT'] = 'D Y M d H:i:s'; //'d/m/y(D)H:i';
// Debug
$cf['KU_DEBUG'] = false; // When enabled, debug information will be printed (Warning: all queries will be shown publicly)
// Post-configuration actions, don't modify these
$cf['KU_VERSION'] = '0.9.3';
$cf['KU_TAGS'] = serialize($cf['KU_TAGS']);
$cf['KU_TRIPS'] = serialize($cf['KU_TRIPS']);
$cf['KU_LINELENGTH'] = $cf['KU_LINELENGTH'] * 15;
if (substr($cf['KU_WEBFOLDER'], -2) == '//') { $cf['KU_WEBFOLDER'] = substr($cf['KU_WEBFOLDER'], 0, -1); }
if (substr($cf['KU_BOARDSFOLDER'], -2) == '//') { $cf['KU_BOARDSFOLDER'] = substr($cf['KU_BOARDSFOLDER'], 0, -1); }
if (substr($cf['KU_CGIFOLDER'], -2) == '//') { $cf['KU_CGIFOLDER'] = substr($cf['KU_CGIFOLDER'], 0, -1); }
$cf['KU_WEBPATH'] = trim($cf['KU_WEBPATH'], '/');
$cf['KU_BOARDSPATH'] = trim($cf['KU_BOARDSPATH'], '/');
$cf['KU_CGIPATH'] = trim($cf['KU_CGIPATH'], '/');
if ($cf['KU_APC']) {
apc_define_constants('config', $cf);
}
while (list($key, $value) = each($cf)) {
define($key, $value);
}
unset($cf);
}
// DO NOT MODIFY BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING OR ELSE BAD THINGS MAY HAPPEN
$modules_loaded = array();
$required = array(KU_ROOTDIR, KU_WEBFOLDER, KU_WEBPATH);
if (in_array('CHANGEME', $required) || in_array('', $required)){
echo 'You must set KU_ROOTDIR, KU_WEBFOLDER, and KU_WEBPATH before installation will finish!';
die();
}
require KU_ROOTDIR . 'lib/gettext/gettext.inc.php';
require KU_ROOTDIR . 'lib/adodb/adodb.inc.php';
// Gettext
_textdomain('kusaba');
_setlocale(LC_ALL, KU_LOCALE);
_bindtextdomain('kusaba', KU_ROOTDIR . 'inc/lang');
_bind_textdomain_codeset('kusaba', KU_CHARSET);
// SQL database
if (!isset($tc_db) && !isset($preconfig_db_unnecessary)) {
$tc_db = &NewADOConnection(KU_DBTYPE);
if (KU_DBUSEPERSISTENT) {
$tc_db->PConnect(KU_DBHOST, KU_DBUSERNAME, KU_DBPASSWORD, KU_DBDATABASE) or die('SQL database connection error: ' . $tc_db->ErrorMsg());
} else {
$tc_db->Connect(KU_DBHOST, KU_DBUSERNAME, KU_DBPASSWORD, KU_DBDATABASE) or die('SQL database connection error: ' . $tc_db->ErrorMsg());
}
// SQL debug
if (KU_DEBUG) {
$tc_db->debug = true;
}
$results_events = $tc_db->GetAll("SELECT * FROM `" . KU_DBPREFIX . "events` WHERE `at` <= " . time());
if (count($results_events) > 0) {
if ($tc_db->ErrorMsg() == '') {
foreach($results_events AS $line_events) {
if ($line_events['name'] == 'sitemap') {
$tc_db->Execute("UPDATE `" . KU_DBPREFIX . "events` SET `at` = " . (time() + 21600) . " WHERE `name` = 'sitemap'");
if (KU_SITEMAP) {
$sitemap = '<?xml version="1.0" encoding="UTF-8"?' . '>' . "\n" .
'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n" . "\n";
$results = $tc_db->GetAll("SELECT `name`, `id` FROM `" . KU_DBPREFIX . "boards` ORDER BY `name` ASC");
if (count($results) > 0) {
foreach($results AS $line) {
$sitemap .= ' <url>' . "\n" .
' <loc>' . KU_BOARDSPATH . '/' . $line['name'] . '/</loc>' . "\n" .
' <lastmod>' . date('Y-m-d') . '</lastmod>' . "\n" .
' <changefreq>hourly</changefreq>' . "\n" .
' </url>' . "\n";
$results2 = $tc_db->GetAll("SELECT `id`, `bumped` FROM `" . KU_DBPREFIX . "posts` WHERE `boardid` = " . $line['id'] . " AND `parentid` = 0 AND `IS_DELETED` = 0 ORDER BY `bumped` DESC");
if (count($results2) > 0) {
foreach($results2 AS $line2) {
$sitemap .= ' <url>' . "\n" .
' <loc>' . KU_BOARDSPATH . '/' . $line['name'] . '/res/' . $line2['id'] . '.html</loc>' . "\n" .
' <lastmod>' . date('Y-m-d', $line2['bumped']) . '</lastmod>' . "\n" .
' <changefreq>hourly</changefreq>' . "\n" .
' </url>' . "\n";
}
}
}
}
$sitemap .= '</urlset>';
$fp = fopen(KU_BOARDSDIR . 'sitemap.xml', 'w');
fwrite($fp, $sitemap);
fclose($fp);
unset($sitemap, $fp);
}
}
}
}
unset($results_events, $line_events);
}
}
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
// Thanks Z
if (get_magic_quotes_gpc()) {
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
if (get_magic_quotes_runtime()) {
set_magic_quotes_runtime(0);
}
?>

44
corpsy.php Normal file
View File

@ -0,0 +1,44 @@
<?php
define('JSONFOLDER', $_SERVER['DOCUMENT_ROOT'].'/coub_json/');
define('URLPREFIX', 'http://coub.com/api/oembed.json?url=http://coub.com/view/');
if(!isset($_GET['code'])) exit('Nigga what are yo doin');
function remote_file_exists($url) {
$file_headers = @get_headers($url);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
return false;
}
else {
return true;
}
}
function serve_file($location) {
header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
header("Cache-Control: public");
header("Content-Type: application/json");
header("Content-Transfer-Encoding: Binary");
header("Content-Length:".filesize($location));
readfile($location);
die();
}
function download_file($from, $to) {
$fp = fopen($to, 'w');
$ch = curl_init($from);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
}
$local_link = JSONFOLDER.$_GET['code'].'.json';
$remote_link = URLPREFIX.$_GET['code'];
if(file_exists($local_link)) serve_file($local_link);
elseif(remote_file_exists($remote_link)) {
download_file($remote_link, $local_link);
serve_file($local_link);
}
else serve_file(JSONFOLDER.'__404__.json'); ?>

1
coub_json/__404__.json Normal file
View File

@ -0,0 +1 @@
{"type":"video","version":"1.0","width":"1280","height":"720","title":"The cow","url":"http://coub.com/view/pydc","thumbnail_url":"http://cdn1.akamai.coub.com/coub/simple/cw_image/74b97b76f9f/aa2ae346a583bc5e26835/med_1392504948_00020.jpg","thumbnail_width":"640","thumbnail_height":"360","author_name":"Dmitry Melov","author_url":"http://coub.com/dmitrymelov","provider_name":"Coub","provider_url":"http://coub.com/","html":"<iframe src=\"http://coub.com/embed/pydc\" allowfullscreen=\"true\" frameborder=\"0\" width=\"640\" height=\"360\"></iframe>"}

272
css/alien.css Normal file
View File

@ -0,0 +1,272 @@
body {
font-size:10pt !important;
font-family:"Trebuchet MS",Trebuchet,serif;
background: url(/css/images/winter/bg_bottom.png) bottom repeat-x;
background-color: #ECF1FF;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
padding: 0px !important;
}
a {
background:inherit;
color:#344063;
text-decoration:underline;
font-family:"Trebuchet MS",Trebuchet,serif;
}
a:visited {
background:inherit;
color:#344063;
}
a:hover {
color:#133B5E;
text-decoration:underline;
}
.adminbar {
text-align:right;
background:inherit;
clear:both;
float:right;
}
.logo {
clear:both;
text-align:center;
background:inherit;
font-size:24pt;
color:#21007F;
width:100%;
}
.theader {
background:#0010E0;
color:#FFFFFF;
width:100%;
}
.postarea {
background:inherit;
}
.rules {
font-size:10px;
font-family:sans-serif;
}
.postblock {
background:#DDDDEE;
color:#000000;
font-weight:800;
}
.footer {
text-align:center;
font-size:10px;
font-family:sans-serif;
}
.passvalid {
background:#9988EE;
text-align:center;
width:100%;
color:#ffffff;
}
.dellist {
background:inherit;
text-align:center;
}
.delbuttons {
background:inherit;
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#708CFF;
color:#000000;
font-family:sans-serif;
font-size:14px;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#000000;
}
.row1 {
background:#77BFFF;
font-family:sans-serif;
font-size:12px;
color:#000000;
}
.row2 {
background:#FFFFFF;
font-family:sans-serif;
font-size:12px;
color:#000000;
}
.unkfunc {
color:#3648A0;
}
.filesize {
font-size:12px;
font-family:sans-serif;
text-decoration:underline;
padding-left:3em;
}
.filetitle {
background:inherit;
font-size:18px;
color:#5663A5;
font-weight:800;
}
.postername {
background:inherit;
color:#3648A0;
font-weight:bold;
}
.postername a {
font-family:inherit;
}
.oldpost {
background:inherit;
font-size:18px;
color:#3D5B96;
font-weight:800;
}
.omittedposts {
background:inherit;
font-size:14px;
color:#333333;
font-weight:800;
}
.reply {
background:#F7F8FF;
/*color:#000000;*/
color: rgb(5, 56, 165);
font-family:"Trebuchet MS",Trebuchet,serif;
border: solid 1px #666699;
-moz-border-radius: 7px;
-webkit-border-bottom-left-radius: 7px;
-webkit-border-bottom-right-radius: 7px;
-webkit-border-top-left-radius: 7px;
-webkit-border-top-right-radius: 7px;
padding: 4px;
}
.postmessage {
word-wrap: break-word;
}
/*.postnode {
width:expression(document.body.offsetWidth-150 + 'px');
overflow: auto !important;
overflow-y: hidden !important;
}*/
.doubledash {
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
background:inherit;
font-size:18px;
color:#00137F;
font-weight:800;
}
.commentpostername {
background:inherit;
font-size:12px;
color:#3648A0;
font-weight:800;
}
.thumbnailmsg {
background:inherit;
font-size:9px;
color:#000000;
}
.highlight {
background: #CCF4FF;
border: 2px dashed #3648A0;
-moz-border-radius: 7px;
-webkit-border-bottom-left-radius: 7px;
-webkit-border-bottom-right-radius: 7px;
-webkit-border-top-left-radius: 7px;
-webkit-border-top-right-radius: 7px;
}
#watchedthreads {
background-color: #E0EFFF !important;
border: 1px solid #8888DD !important;
}
.replymode {
background:#E0EFFF;
text-align:center;
padding:2px;
color:#000000;
width:100%;
font-weight: bold;
}
.catalogmode {
background:#E0EFFF;
text-align:center;
padding:2px;
color:#000000;
width:100%;
font-weight: bold;
border: solid 1px #666699;
-moz-border-radius: 7px;
-webkit-border-bottom-left-radius: 7px;
-webkit-border-bottom-right-radius: 7px;
-webkit-border-top-left-radius: 7px;
-webkit-border-top-right-radius: 7px;
}
.spritebtn {
background-color: #133b5e;
border-color: #133b5e;
}
.spritebtn:hover {
background-color: #3083CC;
border-color: #3083CC;
}
.topbar-left {
background: url('/css/images/winter/topbar-left.png');
}
.topbar-center {
background: url('/css/images/winter/topbar-center.png');
}
.topbar-right {
background: url('/css/images/winter/topbar-right.png');
}
.border-left {
background: url('/css/images/winter/border-left.png');
}
.border-right {
background: url('/css/images/winter/border-right.png');
}
.bottom-left {
background: url('/css/images/winter/bottom-left.png');
}
.bottom-right {
background: url('/css/images/winter/bottom-right.png');
}
.bottom-center {
background: url('/css/images/winter/bottom-center.png');
}
.content-background {
background-color: #FCFDFF;
}
.maintable {
width: 98%;
table-layout: fixed;
}

266
css/autumn.css Normal file
View File

@ -0,0 +1,266 @@
html, body {
background: url(/css/images/photon/bg_bottom.png) bottom repeat-x;
background-color: #BBBBBB;
color: #333333;
font-size:10pt !important;
font-family: "Trebuchet MS",Trebuchet,serif;
margin: 0px;
padding: 0px;
}
a {
color: #FF6600;
}
a:visited {
color: #FF6600;
}
a:hover {
color: #0066FF;
}
.adminbar {
clear:both;
float:right;
font-size: .8em;
}
.adminbar a {
font-weight: bold;
}
.logo {
clear:both;
text-align:left;
font-size:2em;
font-weight: bold;
color:#FF6600;
/*width:100%;*/
}
.replymode, .passvalid {
background:#DDDDDD;
text-align:center;
padding:2px;
color:#2266AA;
clear: both;
font-weight: bold;
margin-bottom: .5em;
border: solid 1px #CCCCCC;
-moz-border-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
}
.catalogmode {
background: #0040E0;
text-align: center;
padding: 2px;
color: #DDDDDD;
clear: both;
font-weight: bold;
margin-bottom: .5em;
border: solid 1px #CCCCCC;
-moz-border-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
}
.postarea {
}
.rules {
font-size:0.7em;
}
.postblock {
background:transparent;
color:#002244;
font-weight:bold;
}
.footer {
text-align:center;
font-size:12px;
font-family:serif;
margin: 2em 0 0 0;
}
.dellist {
font-weight: bold;
text-align:center;
}
.delbuttons {
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#DDDDDD;
color:#002244;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#800000;
}
.row1 {
background:#DDDDDD;
color:#002244;
}
.row2 {
background:#CCCCCC;
color:#002244;
}
.unkfunc {
background:inherit;
color:#789922;
}
.reflink {
font-size: .8em;
font-weight: bold;
}
.filesize {
text-decoration:none;
color: #666666;
font-size: .8em;
}
.filetitle {
background:inherit;
font-size:1.2em;
color:#002244;
font-weight:bold;
}
.postername {
color:#004A99;
font-weight:bold;
}
.postertrip {
color:#FF3300;
}
.oldpost {
color:#CC1105;
font-weight:bold;
}
.omittedposts {
color:#666666;
}
.reply {
padding-right: 3px;
background:#DDDDDD;
border: solid 1px #CCCCCC;
padding: 0;
padding-right: 2px;
-moz-border-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
}
blockquote {
margin: .5em .5em .5em 1em;
}
blockquote p {
margin: 0;
padding: 0;
}
.reply blockquote {
margin: .5em;
}
.doubledash {
display: none;
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
font-size: 1.2em;
color:#002244;
font-weight:bold;
}
.commentpostername {
color:#004A99;
font-weight:800;
}
.thumbnailmsg {
font-size: .8em;
color:#666666;
}
hr {
border-style: solid none none none;
border-width: 1px;
border-color: #BBBBBB;
}
table {
border-style: none;
}
table td {
border-style: none;
}
.nothumb {
background-color: #FFFFFF;
border-style: dotted;
margin: .3em .5em;
}
.abbrev {
color:#666666;
}
.highlight {
background:#EEDACB;
color:#333333;
border: 2px dashed #EE6600;
}
#watchedthreads {
background-color: #DDDDDD !important;
border: 1px solid #CCCCCC !important;
-moz-border-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
}
.spritebtn {
background-color: #aba8a6;
border-color: #aba8a6;;
}
.spritebtn:hover {
background-color:#AA7755;
border-color: #AA7755;;
}
.topbar-left {
background: url('/css/images/photon/topbar-left.png');
}
.topbar-center {
background: url('/css/images/photon/topbar-center.png');
}
.topbar-right {
background: url('/css/images/photon/topbar-right.png');
}
.border-left {
background: url('/css/images/photon/border-left.png');
}
.border-right {
background: url('/css/images/photon/border-right.png');
}
.bottom-left {
background: url('/css/images/photon/bottom-left.png');
}
.bottom-right {
background: url('/css/images/photon/bottom-right.png');
}
.bottom-center {
background: url('/css/images/photon/bottom-center.png');
}
.content-background {
background-color: #EEEEEE;
}
.maintable {
width: 98%;
table-layout: fixed;
}

196
css/burichan.css Normal file
View File

@ -0,0 +1,196 @@
html, body {
font-size:12pt;
background:#EEF2FF;
color:#000000;
}
a {
background:inherit;
color:#34345C;
text-decoration:none;
font-family:sans-serif;
}
a:visited {
background:inherit;
color:#34345C;
text-decoration:none;
font-family:sans-serif;
}
a:hover {
color:#DD0000;
background:inherit;
font-family:sans-serif;
}
.filesize a {
text-decoration:underline;
}
.filesize a:visited {
text-decoration:underline;
}
.adminbar {
text-align:right;
background:inherit;
clear:both;
float:right;
}
.logo {
clear:both;
text-align:center;
background:inherit;
font-size:24pt;
color:#AF0A0F;
width:100%;
}
.replymode {
background:#0010E0;
color:#FFFFFF;
width:100%;
}
.catalogmode {
background:#0040E0;
color:#FFFFFF;
width:100%;
}
.postarea {
background:inherit;
}
.rules {
/*font-size:0.7em;*/
width: 468px;
font-size: 10px;
font-family: sans-serif;
}
.rules li {
margin-left: 1em;
/*text-indent: 0em;*/
}
.postblock {
background:#9988EE;
color:#000000;
font-weight:800;
}
.footer {
text-align:center;
font-size:10px;
font-family:sans-serif;
}
.passvalid {
background:#9988EE;
text-align:center;
width:100%;
color:#ffffff;
}
.dellist {
background:inherit;
text-align:center;
}
.delbuttons {
background:inherit;
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#0F8FE1;
color:#000000;
font-family:sans-serif;
font-size:14px;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#000000;
}
.row1 {
background:#9AD2F6;
font-family:sans-serif;
font-size:12px;
color:#000000;
}
.row2 {
background:#FFFFFF;
font-family:sans-serif;
font-size:12px;
color:#000000;
}
.unkfunc {
color:#789922;
}
.filesize {
font-size:12px;
font-family:sans-serif;
text-decoration:underline;
padding-left:3em;
}
.filetitle {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F0C5D;
font-weight:800;
}
.postername {
background:inherit;
font-size:12px;
font-family:serif;
color:#117743;
font-weight:800;
}
.oldpost {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F0C5D;
font-weight:800;
}
.omittedposts {
background:inherit;
font-size:18px;
font-family:serif;
color:#070707;
font-weight:800;
}
.reply {
background:#D6DAF0;
color:#000000;
font-family:serif;
}
.replyhl {
background: #D6BAD0;
color: #000000;
}
.doubledash {
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F0C5D;
font-weight:800;
}
.commentpostername {
background:inherit;
font-size:12px;
font-family:serif;
color:#117743;
font-weight:800;
}
.thumbnailmsg {
background:inherit;
font-size:9px;
font-family:sans-serif;
color:#000000;
}
.watchedthreads {
background-color: #D6DAF0 !important;
border: 1px dotted #D6DAF0 !important;
border-top: 0px none !important;
}
.reflinkpreview {
background-color: #D6DAF0 !important;
}

135
css/extras/fuhrerchan.css Normal file
View File

@ -0,0 +1,135 @@
html, body {
font-size:10pt;
background:#FFFFFF;
color:#000000;
}
* {
font-family: "Trebuchet MS", Tahoma, Verdana, Arial, sans-serif;
font-size: 10pt;
}
input, textarea {
background-color: #DCDDDE;
border: 1px solid #919191;
}
a {
background:inherit;
color:#000000;
}
a:visited {
background:inherit;
color:#212121;
}
a:hover {
color:#212121;
background:inherit;
}
a.quotelink {
background:inherit;
color:#404040;
}
.logo {
clear:both;
text-align:center;
background:inherit;
font-size:24pt;
color:#000000;
width:100%;
}
.postarea {
background:inherit;
}
.postblock {
background: #919191;
border: 1px solid #000000;
color: black;
font-weight: bold;
padding: 2px 5px 2px 5px;
}
.footer {
text-align:center;
font-size:12px;
}
.unkfunc {
background:inherit;
color:#BFBFBF;
}
.filesize {
text-decoration:none;
}
.filetitle {
background:inherit;
color:#404040;
font-weight:800;
}
.postername {
background:inherit;
font-size:11pt;
color:#737373;
font-weight: bold;
}
.postertrip {
background:inherit;
color:#000000;
}
.oldpost {
background:inherit;
color:#404040;
font-weight:800;
}
.omittedposts {
background:inherit;
color:#070707;
}
.reply {
background:#DCDDDC;
color:#000000;
border:1px solid #919191;
}
.replyhl {
background:#BFBFBF;
color:#000000;
}
.doubledash {
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
background:inherit;
font-size:18px;
color:#FFFFFF;
font-weight:800;
}
.commentpostername {
background:inherit;
font-size:11pt;
color:#737373;
font-weight: bold;
}
a.quotejs {
color:#000000;
text-decoration: none;
}
a.quotejs:hover {
font-weight:bold;
}
.adminbar {
text-align: left;
}
hr {
border-style: solid none none none;
border-width: 1px;
border-color: #000000;
}
#watchedthreads {
background-color: #DCDDDC !important;
border: 1px solid #919191 !important;
border-top: 0px none !important;
}
.reflinkpreview {
background-color: #DCDDDC !important;
}

129
css/extras/gurochan.css Normal file
View File

@ -0,0 +1,129 @@
html, body {
font-size:10pt;
background:#EDDAD2;
color:#000000;
}
* {
font-family: "Trebuchet MS", Tahoma, Verdana, Arial, sans-serif;
font-size: 10pt;
}
input, textarea {
background-color: #E6CBC0;
border: 1px solid #CA927B;
}
a {
background:inherit;
color:#34345C;
}
a:visited {
background:inherit;
color:#34345C;
}
a:hover {
color:#DD0000;
background:inherit;
}
a.quotelink {
background:inherit;
color:#DD0000;
}
.logo {
clear:both;
text-align:center;
background:inherit;
font-size:24pt;
color:#AF0A0F;
width:100%;
}
.postarea {
background:inherit;
}
.postblock {
background: #D9AF9E;
border: 1px solid #CA927B;
color: black;
font-weight: bold;
padding: 2px 5px 2px 5px;
}
.footer {
text-align:center;
font-size:12px;
}
.unkfunc {
background:inherit;
color:#789922;
}
.filesize {
text-decoration:none;
}
.filetitle {
background:inherit;
color:#0F0C5D;
font-weight:800;
}
.postername {
background:inherit;
font-size:11pt;
color:#117743;
font-weight: bold;
}
.postertrip {
background:inherit;
color:#228854;
}
.oldpost {
background:inherit;
color:#0F0C5D;
font-weight:800;
}
.omittedposts {
background:inherit;
color:#070707;
}
.reply {
background:#D9AF9E;
color:#000000;
border:1px solid #CA927B;
}
.replyhl {
background: #D6BAD0;
color: #000000;
}
.doubledash {
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
background:inherit;
font-size:18px;
color:#0F0C5D;
font-weight:800;
}
.commentpostername {
background:inherit;
font-size:11pt;
color:#117743;
font-weight: bold;
}
a.quotejs {
color:#000000;
text-decoration: none;
}
a.quotejs:hover {
font-weight:bold;
}
.adminbar {
text-align: center;
}
#watchedthreads {
background-color: #D9AF9E !important;
border: 1px solid #CA927B !important;
border-top: 0px none !important;
}
.reflinkpreview {
background-color: #D9AF9E !important;
}

188
css/extras/harrischan.css Normal file
View File

@ -0,0 +1,188 @@
/*
This css file was created by Harrison for 24chan.org. Use anywhere else without permission is prohibited.
Contact: HarrisonHopkins@Gmail.com
*/
html, body {
background:#000;
color:#FFF;
}
a {
color:#888;
text-decoration: none;
}
a:hover {
color:#888;
}
.reflink a:hover{
font-weight: bold;
}
input, textarea {
background-color: #000;
color: #fff;
border: 1px solid #CCC;
}
input:focus, textarea:focus
{
background-color: #444;
}
.adminbar {
text-align:right;
clear:both;
float:right;
font-size: 13px;
}
.navbar {
font-size: 13px;
}
.logo {
clear:both;
text-align:center;
font-size:2em;
color:#FFF;
width:100%;
}
.replymode {
background:#AAA;
text-align:center;
padding:2px;
color:#000;
width:100%;
}
.catalogmode {
background:#0040E0;
text-align:center;
padding:2px;
color:#FFFFFF;
width:100%;
}
.postarea {
}
.rules {
/*font-size:0.7em;*/
width: 468px;
font-size: 10px;
font-family: sans-serif;
}
.rules li {
margin-left: 1em;
/*text-indent: 0em;*/
}
.postblock {
background:#444;
color:#CCC;
font-weight:800;
text-align: left;
padding-left: 3px;
padding-right: 3px;
border: 1px solid #666;
}
.footer {
text-align:center;
font-size:12px;
font-family:serif;
}
.passvalid {
background:#444;
text-align:center;
width:100%;
color:#ffffff;
}
.dellist {
font-weight: bold;
text-align:center;
}
.delbuttons {
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#AAAA66;
color:#400000;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#FFF;
}
.row1 {
background:#EEEECC;
color:#FFF;
}
.row2 {
background:#DDDDAA;
color:#FFF;
}
.unkfunc {
background:inherit;
color:#789922;
}
.filesize {
text-decoration:none;
}
.filetitle {
background:inherit;
font-size:1.2em;
color:#CC1105;
font-weight:800;
}
.postername {
color:#CCC;
font-weight:bold;
}
.postertrip {
color:#CCC;
}
.oldpost {
color:#CC1105;
font-weight:800;
}
.omittedposts {
color:#707070;
}
.reply {
background: #444;
color: #FFF;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
padding: 5px;
}
.replyhl {
background: #F0C0B0;
color: #FFF;
}
.doubledash {
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
font-size: 1.2em;
color:#CC1105;
font-weight:800;
}
.commentpostername {
color:#117743;
font-weight:800;
}
.thumbnailmsg {
font-size: small;
color:#FFF;
}
.abbrev {
color:#707070;
}
.highlight {
background:#444;
color:#FFF;
border: 2px dashed #FFF;
}
#watchedthreads {
background-color: #444 !important;
}
.reflinkpreview {
background-color: #444 !important;
}

232
css/extras/kusaba.css Normal file
View File

@ -0,0 +1,232 @@
html, body {
font-size:12pt;
background:#EEFFEE;
color:#000000;
}
a {
background:inherit;
color:#345C34;
text-decoration:none;
font-family:sans-serif;
}
a:visited {
background:inherit;
color:#345C34;
text-decoration:none;
font-family:sans-serif;
}
a:hover {
color:#117743;
background:inherit;
text-decoration:underline;
font-family:sans-serif;
}
.adminbar {
text-align:right;
background:inherit;
clear:both;
float:right;
}
.logo {
clear:both;
text-align:center;
background:inherit;
font-size:24pt;
color:#117743;
width:100%;
}
.theader {
background:#00E010;
color:#FFFFFF;
width:100%;
}
.postarea {
background:inherit;
}
.rules {
font-size:10px;
font-family:sans-serif;
}
.postblock {
background:#88DD88;
color:#000000;
font-weight:800;
}
.footer {
text-align:center;
font-size:10px;
font-family:sans-serif;
}
.passvalid {
background:#99EE88;
text-align:center;
width:100%;
color:#ffffff;
}
.dellist {
background:inherit;
text-align:center;
}
.delbuttons {
background:inherit;
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#0FE18F;
color:#000000;
font-family:sans-serif;
font-size:14px;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#000000;
}
.row1 {
background:#9AF6D2;
font-family:sans-serif;
font-size:12px;
color:#000000;
}
.row2 {
background:#FFFFFF;
font-family:sans-serif;
font-size:12px;
color:#000000;
}
.unkfunc {
color:#117743;
}
.filesize {
font-size:12px;
font-family:sans-serif;
text-decoration:underline;
padding-left:3em;
}
.filetitle {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F5D0C;
font-weight:800;
}
.postername {
background:inherit;
font-family:serif;
color:#117743;
font-weight:bold;
}
.postername a {
font-family:inherit;
}
.oldpost {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F5D0C;
font-weight:800;
}
.omittedposts {
background:inherit;
font-size:18px;
font-family:serif;
color:#070707;
font-weight:800;
}
.reply {
background:#DAF0D6;
color:#000000;
font-family:serif;
}
.doubledash {
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F5D0C;
font-weight:800;
}
.commentpostername {
background:inherit;
font-size:12px;
font-family:serif;
color:#117743;
font-weight:800;
}
.thumbnailmsg {
background:inherit;
font-size:9px;
font-family:sans-serif;
color:#000000;
}
.highlight {
background: #88DD88;
border: 2px dashed #117743;
}
#watchedthreads {
background-color: #DAF0D6 !important;
border: 1px solid #88DD88 !important;
}
.replymode {
background:#DAF0D6;
text-align:center;
padding:2px;
color:#000000;
width:100%;
font-weight: bold;
}
.catalogmode {
background:#88DD88;
text-align:center;
padding:2px;
color:#000000;
width:100%;
font-weight: bold;
}
.hidethread {
background: transparent url('./icons/green/icons.gif') -32px -16px no-repeat;
}
.unhidethread {
background: transparent url('./icons/green/icons.gif') -48px 0px no-repeat;
}
.watchthread {
background: transparent url('./icons/green/icons.gif') -32px 0px no-repeat;
}
.expandthread {
background: transparent url('./icons/green/icons.gif') 0px -16px no-repeat;
}
.quickreply {
background: transparent url('./icons/green/icons.gif') 0px 0px no-repeat;
}
.hidewatchedthreads {
background: transparent url('./icons/green/icons.gif') -48px -16px no-repeat;
}
.refreshwatchedthreads {
background: transparent url('./icons/green/icons.gif') -16px -16px no-repeat;
}
.restorewatchedthreads {
background: transparent url('./icons/green/icons.gif') -16px 0px no-repeat;
}
.reflinkpreview {
background-color: #DAF0D6 !important;
}

171
css/extras/photon.css Normal file
View File

@ -0,0 +1,171 @@
html, body {
background-color: #EEEEEE;
color: #333333;
font-family: "Trebuchet MS",Trebuchet,serif;
}
a {
color: #FF6600;
}
a:hover {
color: #0066FF;
}
.adminbar {
clear:both;
float:right;
font-size: .8em;
}
.adminbar a {
font-weight: bold;
}
.logo {
clear:both;
text-align:left;
font-size:2em;
font-weight: bold;
color:#FF6600;
}
.theader, .passvalid, .replymode {
background:#DDDDDD;
text-align:center;
padding:2px;
color:#2266AA;
clear: both;
font-weight: bold;
margin-bottom: .5em;
border: solid 1px #CCCCCC;
-moz-border-radius: 5px;
}
.rules {
font-size:0.7em;
}
.postblock {
background:transparent;
color:#002244;
font-weight:bold;
}
.footer {
text-align:center;
font-size:12px;
font-family:serif;
margin: 2em 0 0 0;
}
.dellist {
font-weight: bold;
text-align:center;
}
.delbuttons {
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#DDDDDD;
color:#002244;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#800000;
}
.row1 {
background:#DDDDDD;
color:#002244;
}
.row2 {
background:#CCCCCC;
color:#002244;
}
.unkfunc {
background:inherit;
color:#789922;
}
.reflink {
font-size: .8em;
font-weight: bold;
}
.filesize {
text-decoration:none;
color: #666666;
font-size: .8em;
}
.filetitle {
background:inherit;
font-size:1.2em;
color:#002244;
font-weight:bold;
}
.postername {
color:#004A99;
font-weight:bold;
}
.postertrip {
color:#FF3300;
}
.oldpost {
color:#CC1105;
font-weight:bold;
}
.omittedposts {
color:#666666;
}
.reply {
background:#DDDDDD;
border: solid 1px #CCCCCC;
padding: 0;
margin: 0;
-moz-border-radius: 5px;
}
blockquote {
margin: .5em .5em .5em 1em;
}
blockquote p {
margin: 0;
padding: 0;
}
.reply blockquote {
margin: .5em;
}
.doubledash {
display: none;
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
font-size: 1.2em;
color:#002244;
font-weight:bold;
}
.commentpostername {
color:#004A99;
font-weight:800;
}
.thumbnailmsg {
font-size: .8em;
color:#666666;
}
hr {
border-style: solid none none none;
border-width: 1px;
border-color: #BBBBBB;
}
table {
border-style: none;
}
table td {
border-style: none;
}
.nothumb {
background-color: #FFFFFF;
border-style: dotted;
margin: .3em .5em;
}
.abbrev {
color:#666666;
}
.highlight {
background:#EEDACB;
color:#333333;
border: 2px dashed #EE6600;
}

View File

@ -0,0 +1,142 @@
/*
This css file was created by Harrison for 24chan.org. Use anywhere else without permission is prohibited.
Contact: HarrisonHopkins@Gmail.com
*/
body {
font-family: sans-serif;
background: #000;
color: #FFF;
margin: 0;
font-size: 75%;
width: 90%;
}
#topmenu li {
display: block;
float: left;
border: 1px solid #888;
padding-top: 3px;
padding-bottom: 2px;
padding-left: 10px;
padding-right: 10px;
border-left: none;
margin-top: -7px;
background-color: #666;
}
#topmenu li.first {
border-left: 1px solid #888;
}
#topmenu li.current {
margin-top: -8px;
padding-top: 5px;
border-bottom: none;
background-color: #444;
background-image: url('/css/images/grad-bg.png');
background-repeat: repeat-x;
}
a {
color: #CCC;
text-decoration: none;
}
h2 {
margin-top: 0px;
background: #444;
font-size: 100%;
padding: 1px 5px 1px 5px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
-moz-border-radius-topleft: 0px;
}
h2 a {
text-decoration: none;
color: #CCC;
}
h1, h3, .menu {
font-family: Verdana,Tahoma,sans-serif;
}
h1 {
margin: 0;
color: #FFF;
text-align: center;
margin-top: 1em;
}
h3 {
margin: 0;
color: #FFF;
text-align: center;
font-weight: normal;
font-size: medium;
}
.menu {
margin-top: 1em;
text-align: center;
}
.content {
margin-left: 3em;
text-align: justify;
padding-left: 4px;
}
.newssub {
position: absolute;
}
.permalink {
text-align: right;
display: block;
}
.permalink a {
color: #CCC;
text-decoration: underline;
}
#boards .column {
float: left;
width: 33%;
height: 200px;
padding-bottom: 10px;
border-left: 1px solid #444;
border-right: 1px solid #444;
border-bottom: 1px solid #444;
}
ul {list-style: none;}
h4 {
text-align: center;
}
#boards a:hover {
text-decoration: underline;
}
#boardhead {
text-align: center;
background-color: #444;
height: 20px;
margin-top: 15px;
padding-top: 0px;
padding-bottom: 3px;
font-size: 150%;
background-image: url('/css/images/grad-bg.png');
background-repeat: repeat-x;
-moz-border-radius-topleft: 2px;
-moz-border-radius-topright: 2px;
}
h4 {
font-size: 100%;
font-weight: bold;
margin-top: 16px;
}

View File

@ -0,0 +1,73 @@
body {
font-family: sans-serif;
font-size: 75%;
background: #EEFFEE;
color: #000000;
margin: 0;
width: 90%;
}
h2 {
margin: 0px;
background: #DAF0D6;
color: #117743;
font-size: 100%;
}
h2 a {
text-decoration: none;
color:#345C34;
}
h1, h3, .menu {
font-family: Verdana,Tahoma,sans-serif;
}
h1 {
margin: 0;
/*color: #800;*/
text-align: center;
margin-top: 1em;
}
h3 {
margin: 0;
/*color: #800;*/
text-align: center;
font-weight: normal;
font-size: medium;
}
.menu {
margin-top: 1em;
text-align: center;
}
.content {
margin-left: 3em;
}
.newssub {
position: absolute;
}
.permalink {
text-align: right;
display: block;
}
.permalink a {
color: blue;
text-decoration: none;
}
/*h1 { font-size: 150% }*/
/*h2 { font-size: 100%; margin-top: 1em }
.hl {
font-style: italic;
}
.plus { float: right; font-size: 8px; font-weight: normal; padding: 1px 4px 2px 4px; margin: 0px 0px; background: #eb9; color: #000; border: 1px solid #da8; cursor: hand; cursor: pointer }
.plus:hover { background: #da8; border: 1px solid #c97 }
ul { list-style: none; padding-left: 0px; margin: 0px }
li { margin: 0px }
li:hover { background: #fec; }
li a { display: block; width: 100%; }/*

View File

@ -0,0 +1,83 @@
body {
background-color: #EEEEEE;
color: #333333;
font-family: "Trebuchet MS",Trebuchet,serif;
margin: 0;
width: 90%;
}
a {
color: #FF6600;
}
a:hover {
color: #0066FF;
}
.menu {
margin-top: 1em;
text-align: center;
}
.content {
margin-left: 2.5em;
text-align: justify;
padding-left: 4px;
background-color: #DDDDDD;
border: 1px solid #888;
}
.newssub {
position: absolute;
}
.permalink {
text-align: right;
display: block;
}
#topmenu li {
display: block;
float: left;
border: 1px solid #888;
padding-top: 3px;
padding-bottom: 2px;
padding-left: 10px;
padding-right: 10px;
border-left: none;
margin-top: -7px;
background-color: #CCCCCC;
-moz-border-radius-topright: 5px;
-moz-border-radius-topleft: 5px;
}
#topmenu li.first {
border-left: 1px solid #888;
padding-bottom: 3px;
}
#topmenu li.current {
margin-top: -8px;
padding-top: 5px;
border-bottom: none;
background-color: #DDDDDD;
}
h2 {
background:#CDCDCD;
border: solid 1px #888;
-moz-border-radius: 5px;
margin-top: 1em;
padding-left: .5em;
margin-right: .3em;
cursor: pointer;
font-size: 1.1em;
margin-bottom: 0em;
padding-bottom: 0em;
}
h3 {
font-size: 1.1em;
text-align: right;
font-style: Arial;
}

View File

@ -0,0 +1,77 @@
/*
This css file was created by Harrison for 24chan.org. Use anywhere else without permission is prohibited.
Contact: HarrisonHopkins@Gmail.com
*/
body {
font-size: 70%;
margin: 8px;
font-family: sans-serif;
width: 90% !important;
}
a {
text-decoration: none;
color: #CCC;
}
h1, h2 {
background: #444;
text-align: left;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
padding: 0px;
margin: 0;
}
h1 {
margin-top: 0px;
font-size: 150%;
color: #FFF;
padding-left: 5px;
}
h2 {
font-size: 100%;
margin-top: 1em;
}
.plus {
float: right;
font-size: 8px;
font-weight: normal;
padding: 1px 4px 2px 4px;
margin: 0px 0px;
background: #444;
color: #FFF;
cursor: hand;
cursor: pointer;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
}
.plus:hover {
background: #444;
}
ul {
list-style: none;
padding-left: 0px;
margin: 0px;
}
li {
margin: 0px;
padding-left: 5px;
}
li:hover {
background: #333;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
}
li a {
display: block;
width: 99%;
}

View File

@ -0,0 +1,61 @@
body {
margin: 8px;
}
a {
text-decoration: none;
color: #550;
}
h1, h2 {
background: #DAF0D6;
text-align: left;
}
h1 {
margin-top: 0px;
font-size: 150%;
color: #000;
}
h2 {
font-size: 100%;
margin-top: 1em;
}
.plus {
float: right;
font-size: 8px;
font-weight: normal;
padding: 1px 4px 2px 4px;
margin: 0px 0px;
background: #88DD88;
color: #000;
border: 1px solid #117743;
cursor: hand;
cursor: pointer;
}
.plus:hover {
background: #da8;
border: 1px solid #c97;
}
ul {
list-style: none;
padding-left: 0px;
margin: 0px;
}
li {
margin: 0px;
}
li:hover {
background: #DAF0D6;
}
li a {
display: block;
width: 100%;
}

View File

@ -0,0 +1,46 @@
body {
margin-top: 0;
margin-left: .1em;
margin-right: 1.em;
}
a {
color: #FF6600;
}
a:hover {
color: #0066FF;
}
h1 {
margin-top: .1em;
margin-left: .5em;
}
h2 {
background:#DDDDDD;
border: solid 1px #CCCCCC;
margin-top: 1em;
padding-left: .5em;
cursor: pointer;
font-size: 1.1em;
margin-bottom: 0em;
padding-bottom: 0em;
-moz-border-radius: 5px;
}
li {
margin-left: .5em;
padding-left: .5em;
border-left: solid 1px #CCCCCC;
list-style: none;
margin-top: 0em;
padding-top: 0em;
}
ol, ul {
list-style-position: inside;
padding-left: 0em;
margin-top: 0em;
padding-top: 0em;
}

View File

@ -0,0 +1,262 @@
body
{
background: #000;
font-family: sans-serif;
margin: 0;
color: #FFF;
}
a
{
color: #888;
text-decoration: none;
}
a:hover
{
text-decoration: underline;
}
h1
{
color: #000;
padding: .5em;
}
.head
{
background: #444;
}
.threadldiv, body.board .thread, .midhead, .newthread, .head
{
margin: 1em;
margin-left: 2.5%;
margin-right: 2.5%;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.threadldiv, .thread, .midhead, .newthread
{
background: #444;
padding: 1px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
margin-top: 5px;
margin-bottom: 5px;
}
.midhead
{
padding: .5em;
}
.threadlink, .boldthreadlink
{
display: block;
text-align: center;
}
.boldthreadlink
{
font-weight: bold;
}
.tolder
{
display: none;
}
h2
{
margin: .1em;
padding-left: .3em;
padding-top: .1em;
}
h2 a
{
background: #444;
text-decoration: underline;
}
.replies
{
font-size: x-large;
font-weight: bolder;
padding-right: .5em;
font-family: serif;
}
.topbar a
{
color: #888;
font-family: IPAMonaPGothic,Mona,'MS PGothic',YOzFontAA97;
}
.threadlistflat
{
margin-bottom:0;
}
.postheader *
{
clear: none;
margin: 0;
margin-bottom: .1em;
}
.post, form
{
width: 90%;
margin-left: 9%;
margin-top: 1em;
}
.hidden
{
margin-left: .5em;
}
form
{
margin-left: 2.9em;
}
.post
{
background: #000;
/*border: 1px solid #888;*/
padding-bottom: .1em;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
}
h3
{
font-weight: normal;
font-size: x-small;
/* color: grey;*/
margin: 0;
margin-right: .1em;
text-align: right;
clear: none;
height: 0;
}
h3 a
{
/* color: grey;*/
font-weight: bold;
}
h3 .postnum a, form .postnum
{
text-decoration: none;
font-size: xx-large;
color: black;
font-style: italic;
font-family: serif;
font-weight: bolder;
float: left;
clear: none;
width: 1.5em;
text-align: right;
vertical-align: middle;
}
.namelabel
{
display: none;
}
form .postnum
{
padding-right: .3em;
}
h3 .postnum a, blockquote
{
position: relative;
left: -2em;
}
h3 .postnum a
{
height: 0;
}
blockquote
{
clear: left;
}
blockquote p
{
margin: 0;
}
table .submit
{
width: 100%;
}
td.label
{
text-align: right;
}
table .mail
{
width: auto;
float: right;
}
.legal
{
text-align: center;
font-size: small;
}
.manage
{
text-align: center;
font-size: x-small;
}
.stylelist
{
display: inline-block;
float: right;
}
body.read h2
{
color: #888;
font-size: larger;
}
.read
{
background: #444;
}
.pages
{
font-size: smaller;
}
.bottomnav
{
text-align: center;
}
.topbar
{
margin-bottom: .5em;
width: 100%;
text-align: left;
}
.threads
{
background: #000;
}
.threads th
{
padding: 0px;
margin: 0px;
}
.threads thead
{
background: #444;
}
.threads a
{
/*display: block;
*/}
.threads a:hover
{
text-decoration: none;
}
.threads tr:hover
{
/* background: #dfe3f9;*/
}
.threads th
{
background: #444 !important;
}
.threads a
{
display: block;
}
.quote:hover
{
background: #444 !important;
}
.thread
{
margin-left: 2px;
margin-right: 2px;
}

170
css/extras/txt_headline.css Normal file
View File

@ -0,0 +1,170 @@
body {
padding: 0px 8px 8px 8px;
margin: 0px;
background: #FFFFFF;
color: #000000;
}
a {
color: #DD6600;
}
a:visited {
color: #DD6600;
}
a:hover {
color:#FFAA44;
}
form {
clear: both;
background: #EEEEEE;
color: #000000;
border-bottom: 2px solid #BBBBBB;
font-family: sans-serif;
margin: 3px;
padding: 3px;
}
input, textarea {
border: 1px solid #000000;
}
input[type="file"] > input[type="text"] {
border: 1px solid #000000;
}
ol ul, ul ol, ul ul, ol ol {
margin-top: 0;
margin-bottom: 0;
}
ol p:first-child, ul p:first-child {
margin-top: 0;
}
ol p:last-child, ul p:last-child {
margin-bottom: 0;
}
.topbar {
width: 100%;
text-align: right;
}
.head {
background: #EEEEEE;
color: #000000;
font-family: sans-serif;
clear: both;
margin-bottom: 0.5em;
padding-bottom: 0;
}
.hborder .head {
border-bottom: 2px solid #BBBBBB;
}
h1 {
font-size: 2em;
font-weight: bold;
text-align: center;
border-bottom: 2px solid #FF7700;
padding: 4px 4px 0px 4px;
}
h2 {
float: left;
background: #EEEEEE;
border-bottom: 2px solid #FF7700;
font-size: 1.2em;
font-family: sans-serif;
font-weight: bold;
margin: 0px 0px 0.7em 0px;
padding: 0px 0.2em 0px 0px;
}
h2 a {
color: #000000;
text-decoration: none;
}
h2 a:hover {
color:#FFAA44;
}
h2 small {
font-size: 1em;
font-weight: normal;
margin-left: 0.5em;
}
.midhead {
padding: 1em 0.5em 0.2em 0.5em;
}
.navlinks {
font-size: 1.5em;
}
.threadlinks {
font-weight: bold;
}
.postnum {
width: 1.5em;
font-family: sans-serif;
text-align: right;
font-weight: bold;
margin-right: 0.5em;
float: left;
}
.postnum a {
color: #000000;
text-decoration: none;
}
.postnum a:hover {
color:#FFAA44;
}
.replies {
clear: both;
margin-bottom: 1.2em;
padding: 4px;
font-size: 1em;
font-weight: normal;
}
h3 {
font-size: 1em;
font-family: sans-serif;
font-weight: normal;
margin: 0px 0px 0px 0px;
clear: both;
}
h3 a {
color: #000000;
}
h3 a:hover {
color:#FFAA44;
}
.postername {
color: #000000;
font-weight: bold;
}
.postertrip {
color: #000000;
}
.legal {
text-align: center;
font-size: small;
}

View File

@ -0,0 +1,55 @@
a:link, a:visited {color: blue}
a:hover, a:active {color: red}
body.board, body.list {margin: 0}
body.board {background-image: url(ba.gif);}
body.read {background-color: #efefef;}
.head, body.board .thread { border: 1px inset gray; padding: 6px;}
table.postform td {text-align: left;}
table.postform td input {width: auto;}
table.newthreadform .submit {width: 100%;}
table.postform td textarea {width: auto;}
table.postform td.label {text-align: right;}
table.postform .mail {width: auto; float: right;}
.legal {text-align: center; font-size: small;}
.manage {text-align: center; font-size: x-small;}
.postnum {font-weight: bold; margin-right: .1em;}
.postername,.postertrip {color: green;}
.postername {font-weight: bold;}
blockquote {text-align: left; font-family: serif; margin-top: 0.5em;}
blockquote p {margin-top: 0;}
.border, .hborder {border: 1px outset gray; margin-left: 2.5%; margin-right: 2.5%; width: 95%; padding: 6px; margin-bottom: 1em; background-color: #efefef}
.hborder {background-color: #cfc}
h2 {margin-top: 0px; clear: both;}
/*.threadldiv {margin-right: 2.5%; margin-left: 2.5%; margin-bottom: 1em; background-color: #cfc; width: 95%;}*/
.threads {font-size: small; text-align: left;}
table.threads th {text-align: center;}
.topbar {margin: -2px; margin-bottom: .5em; background: white; border: 1px inset black; width: 100%; text-align: right}
.styles {border: 2px outset black; margin: 2px; background: white; float: left; margin-top: 0; margin-left: 0}
.threads th a, .threads td a, .postfieldleft a, .postnum a {color: black;}
.postfieldleft a, .postnum a, h2 a {text-decoration: none}
.postfieldleft {vertical-align: top;}
.replies {font-size: 70%; font-weight: bolder;}
h2 a:link, h2 a:visited, h2 a:active, h2 a:hover {color: red;}
h2 a:hover, h2 a:active {text-decoration: underline}
h2, .navlinks {clear: none; margin-bottom: .1em;}
.pages {font-size: smaller}
.bottomnav {text-align: center;}
.newthread h2 {color: black;}
.postinfo {margin-left: .3em;}
.navlinks a {font-family: IPAMonaPGothic,Mona,'MS PGothic',YOzFontAA97}
h3 {font-weight: normal; font-size: 100%; margin-top: 0; margin-bottom: 0}
.tolder {font-size: smaller}
body.read h2 {color: red; font-size: larger}
.threadlistflat {display: inline; padding: 0; margin: 0}
.threadlink {display: inline; text-align: justify;}
.pages {text-align: center; font-size: small;}
.navlinks {float: right;}
.navlinks a {text-decoration: none}
.threadlink {padding-right: .55em;}
.boldthreadlink {padding-right: .55em; font-weight: bold;}
.stylelist {display: inline-block; float: right}

121
css/extras/txt_yotsuba.css Normal file
View File

@ -0,0 +1,121 @@
body {background: #ffe; font-family: sans-serif; margin: 0}
a { color: #550 }
h1 {color: #800; padding: .5em}
.head {background: #fca;}
.threadldiv, body.board .thread, .midhead, .newthread, .head {
margin: 1em;
margin-left: 2.5%;
margin-right: 2.5%;
}
.threadldiv, .thread, .midhead, .newthread {
background: #f9e9dd; padding: 1px;
}
.midhead {padding: .5em}
.threadlink, .boldthreadlink {
display: block;
text-align: center
}
.boldthreadlink {font-weight: bold}
.tolder {display: none}
h2 {margin: .1em; padding-left: .3em; padding-top: .1em}
h2 a {color: #cc1105; text-decoration: none}
.replies {
font-size: x-large;
font-weight: bolder;
padding-right: .5em;
font-family: serif
}
.topbar a {
color: #cc1105;
font-family: IPAMonaPGothic,Mona,'MS PGothic',YOzFontAA97
}
.threadlistflat {margin-bottom:0}
.postheader * {clear: none; margin: 0; margin-bottom: .1em;}
.post, form {
width: 90%;
margin-left: 9%;
margin-top: 1em;
}
.hidden {margin-left: .5em;}
form {margin-left: 2.9em}
.post {
background: #ffe;
/*border: 1px solid #fca;*/
padding-bottom: .1em;
}
h3 {
font-weight: normal;
font-size: x-small;
color: grey;
margin: 0;
margin-right: .1em;
text-align: right;
clear: none;
height: 0;
}
h3 a {color: grey; font-weight: bold}
h3 .postnum a, form .postnum {
text-decoration: none;
font-size: xx-large;
color: black;
font-style: italic;
font-family: serif;
font-weight: bolder;
float: left;
clear: none;
width: 1.5em;
text-align: right;
vertical-align: middle
}
.namelabel {display: none}
form .postnum {padding-right: .3em}
h3 .postnum a, blockquote {
position: relative;
left: -2em;
}
h3 .postnum a {height: 0}
blockquote {
clear: left;
}
blockquote p {margin: 0}
table .submit {width: 100%;}
td.label {text-align: right;}
table .mail {width: auto; float: right;}
.legal {text-align: center; font-size: small;}
.manage {text-align: center; font-size: x-small;}
.stylelist {display: inline-block; float: right}
body.read, body.read .thread {background: #f9e9dd}
body.read h2 {color: red; font-size: larger}
.pages {font-size: smaller}
.bottomnav {text-align: center;}
.topbar {margin: -2px; margin-bottom: .5em; background: #f9e9dd; border: 1px inset #cc1105; width: 100%; text-align: right}

165
css/futaba.css Normal file
View File

@ -0,0 +1,165 @@
html, body {
background:#FFFFEE;
color:#800000;
}
a {
color:#0000EE;
}
a:hover {
color:#DD0000;
}
.reflink a:hover{
font-weight: bold;
}
.adminbar {
text-align:right;
clear:both;
float:right;
}
.logo {
clear:both;
text-align:center;
font-size:2em;
color:#800000;
width:100%;
}
.replymode {
background:#E04000;
text-align:center;
padding:2px;
color:#FFFFFF;
width:100%;
}
.catalogmode {
background:#0040E0;
text-align:center;
padding:2px;
color:#FFFFFF;
width:100%;
}
.postarea {
}
.rules {
/*font-size:0.7em;*/
width: 468px;
font-size: 10px;
font-family: sans-serif;
}
.rules li {
margin-left: 1em;
/*text-indent: 0em;*/
}
.postblock {
background:#EEAA88;
color:#800000;
font-weight:800;
}
.footer {
text-align:center;
font-size:12px;
font-family:serif;
}
.passvalid {
background:#EEAA88;
text-align:center;
width:100%;
color:#ffffff;
}
.dellist {
font-weight: bold;
text-align:center;
}
.delbuttons {
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#AAAA66;
color:#400000;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#800000;
}
.row1 {
background:#EEEECC;
color:#800000;
}
.row2 {
background:#DDDDAA;
color:#800000;
}
.unkfunc {
background:inherit;
color:#789922;
}
.filesize {
text-decoration:none;
}
.filetitle {
background:inherit;
font-size:1.2em;
color:#CC1105;
font-weight:800;
}
.postername {
color:#117743;
font-weight:bold;
}
.postertrip {
color:#228854;
}
.oldpost {
color:#CC1105;
font-weight:800;
}
.omittedposts {
color:#707070;
}
.reply {
background: #F0E0D6;
color: #800000;
}
.replyhl {
background: #F0C0B0;
color: #800000;
}
.doubledash {
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
font-size: 1.2em;
color:#CC1105;
font-weight:800;
}
.commentpostername {
color:#117743;
font-weight:800;
}
.thumbnailmsg {
font-size: small;
color:#800000;
}
.abbrev {
color:#707070;
}
.highlight {
background:#F0E0D6;
color:#800000;
border: 2px dashed #EEAA88;
}
#watchedthreads {
background-color: #F0E0D6 !important;
}
.reflinkpreview {
background-color: #F0E0D6 !important;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

BIN
css/icons/beige/icons.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

BIN
css/icons/beige/pin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

BIN
css/icons/beige/pin2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

BIN
css/icons/beige/x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

BIN
css/icons/blank.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

BIN
css/icons/blue/icons.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

BIN
css/icons/brown/icons.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 885 B

BIN
css/icons/dark/icons.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 B

BIN
css/icons/gray/icons.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

BIN
css/icons/green/icons.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

BIN
css/icons/purple/icons.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 B

BIN
css/icons/red/icons.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 881 B

BIN
css/icons/white.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

BIN
css/icons/white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
css/images/grad-bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
css/images/modern/bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

631
css/img_global.css Normal file
View File

@ -0,0 +1,631 @@
body {
margin: 0;
padding: 8px;
margin-bottom: auto;
}
blockquote blockquote {
margin-left: 0em;
}
form {
margin-bottom: 0px;
}
.captchaimage {
margin-top: -8px;
}
form .trap {
display:none;
}
.postarea {
text-align: center;
}
.captchaimage {
display: inline!important;
opacity: 0;
}
.postarea table {
margin: 0px auto;
text-align: left;
}
.thumb {
border: none;
float: left;
margin: 2px 20px;
transition: opacity 0.1s;
-moz-transition: opacity 0.1s;
-o-transition: opacity 0.1s;
-webkit-transition: opacity 0.1s;
}
.navbar {
display: block;
}
.overlay-menu {
position:fixed;
top:0px;
left:30px;
border-left:1px #CCC solid;
border-right:1px #CCC solid;
border-bottom:1px #CCC solid;
padding:3px;
border-radius: 0px 0px 5px 5px;
z-index:100
}
.code_full {
border: #666666 dashed 1px;
background: #EFEFEF;
}
pre {
font-family: Consolas, Lucida Console, monospace !important;
margin: 0em;
}
.code_part {
border: #DFDFDF dashed 1px;
background: #EFEFEF;
width: auto;
max-height: 400px;
overflow: auto;
padding:0px;
margin:0px;
}
.reflinkpreview {
position: absolute;
/*background: #eee;*/
margin: 0px;
padding: 0px;
border: 1px #666 dashed;
box-shadow: #666 0px 0px 10px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.nothumb {
float: left;
background: #eee;
border: 2px dashed #aaa;
text-align: center;
margin: 2px 20px;
padding: 1em 0.5em 1em 0.5em;
}
.reply blockquote, blockquote :last-child {
margin-bottom: 0em;
}
.reflink a {
color: #333333;
text-decoration: none;
}
.reflink a:hover{
color: #800000;
}
.reflink a:visited{
color: #333333;
}
.reply .filesize {
margin-left: 20px;
}
.replieslist {
font-size:11px;
}
.userdelete {
float: right;
text-align: center;
white-space: nowrap;
}
.replypage .replylink {
display: none;
}
.pagelist {
max-width: 600px;
}
.admin {
color: #800080;
font-weight: normal;
}
.mod {
color: #FF0000;
font-weight: normal;
}
.vip {
color: #336600;
font-weight: normal;
}
#watchedthreads {
position: absolute;
background-color: #F0E0D6;
border: 1px dotted #EEAA88;
border-top: 0px none;
}
#watchedthreadsdraghandle {
text-align: center;
font-family: Trebuchet MS;
cursor: move;
}
#watchedthreadlist {
padding: 3px;
font-size: 0.8em;
}
#watchedthreadsbuttons {
position: absolute;
bottom: 3px;
left: 3px;
}
.spoiler {
color: black;
background-color: black;
}
.spoiler:hover {
color: inherit;
background-color: inherit;
}
.spoiler a {
color: inherit;
}
.spoiler a:visited {
color: inherit;
}
.spoiler a:hover {
color: inherit;
}
.extrabtns {
vertical-align: middle;
}
.btngroup {
white-space: nowrap;
}
.reply ._country_ {
margin-left: 4px;
}
.extrabtns a {
font-size: 0px;
}
.hidethread {
background-position: -32px -16px;
}
.unhidethread {
background-position: -48px 0px;
}
.pinned, .unstick {
background-position: -48px -16px;
}
.unpinned, .stick {
background-position: -32px 0px;
}
.expandthread {
background-position: 0px -16px;
}
.quickreply {
background-position: 0px 0px;
}
.spritebtn {
background-image: url('/css/icons/white.gif');
border-radius: 3px;
-webkit-transition: background-color 0.3s, border-color 0.3s;
-moz-transition: background-color 0.3s, border-color 0.3s;
-ms-transition: background-color 0.3s, border-color 0.3s;
-o-transition: background-color 0.3s, border-color 0.3s;
transition: background-color 0.3s, border-color 0.3s;
}
.sb-l { border-radius: 3px 0 0 3px; }
.sb-c { border-radius: 0px; }
.sb-r { border-radius: 0 3px 3px 0; }
.getnewposts {
background-position: -16px -16px;
}
.closebox, .delete {
background-position: -16px 0px;
}
.ban {
background-position: 0px -32px;
}
.dandb {
background-position: -16px -32px;
}
.lock {
background-position: -32px -32px;
}
.unlock {
background-position: -48px -32px;
}
.menu-item {
display: block;
}
img.latex, object.latex {
vertical-align: middle;
}
.shrink {
max-width: 960px;
}
.prettyprint br {
display: none;
}
.reply {
max-width: 100%;
}
.reflinkpreview .reply {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
margin: 0px;
}
.prettyprint {
overflow: auto;
max-height: 500px;
background: rgba(255, 255, 255, 0.62);
}
/* table {
border-spacing: 0px 2px;
} */
.dice {
color: white;
background: rgb(135, 106, 172);
padding: 0 3px;
border-radius: 5px;
}
.doubledash {
display: none;
}
.replies table, .replies table tbody {
display: block;
}
.prettyprint-container {
display: inline-block;
margin-left: 0px;
margin-bottom: 2px;
margin-top: 2px;
}
.qreplyform {
padding: 3px;
border-radius: 8px;
white-space: nowrap;
z-index: 9999;
opacity: 0.85;
-webkit-transition: opacity 0.2s;
-moz-transition: opacity 0.2s;
-ms-transition: opacity 0.2s;
-o-transition: opacity 0.2s;
transition: opacity 0.2s;
}
.qreplyform:hover {
opacity: 1;
}
.postboxcontrol {
position: absolute;
top: 3px;
right: 5px;
}
.xlink {
cursor: pointer;
}
/* Node insertion detection #snivystuff */
@keyframes nodeInserted {
from { clip: rect(1px, auto, auto, auto); }
to { clip: rect(0px, auto, auto, auto); }
}
@-moz-keyframes nodeInserted {
from { clip: rect(1px, auto, auto, auto); }
to { clip: rect(0px, auto, auto, auto); }
}
@-webkit-keyframes nodeInserted {
from { clip: rect(1px, auto, auto, auto); }
to { clip: rect(0px, auto, auto, auto); }
}
@-ms-keyframes nodeInserted {
from { opacity: 0.999; }
to { opacity: 1; }
}
@-o-keyframes nodeInserted {
from { clip: rect(1px, auto, auto, auto); }
to { clip: rect(0px, auto, auto, auto); }
}
/* div[id*=op], td[id*=reply] */
.postmessage {
animation-duration: 0.001s;
-o-animation-duration: 0.001s;
-ms-animation-duration: 0.001s;
-moz-animation-duration: 0.001s;
-webkit-animation-duration: 0.001s;
animation-name: nodeInserted;
-o-animation-name: nodeInserted;
-ms-animation-name: nodeInserted;
-moz-animation-name: nodeInserted;
-webkit-animation-name: nodeInserted;
}
.youtube.embed {
width: 368px;
height: 237px;
background-position: 50% 50%;
background-size: 100%;
margin-right: 8px;
}
.youtube.wrapper:before {
position: absolute;
width: 368px;
height: 237px;
content: '';
background: url('../images/yt-ol.png');
display: block;
cursor: pointer;
}
.youtube.wrapper:hover, .vimeo.wrapper:hover, .coub.wrapper:hover {
cursor: pointer;
}
.youtube.wrapper:hover:before {
position: absolute;
width: 368px;
height: 237px;
content: '';
background: url('../images/yt-ol.png') 0 -237px;
display: block;
pointer-events: none;
}
.youtube.unwrapping:before {
position: absolute;
width: 368px;
height: 237px;
content: '';
background: url('../images/yt-ol.png') 0 -474px;
display: block;
}
.yt-title-overlay {
display: block;
color: rgba(255, 255, 255, 0.8) !important;
background: rgba(0, 0, 0, 0.8);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 13px;
line-height: 30px;
padding-left: 10px;
text-decoration: none;
}
.yt-title-overlay:hover {
text-decoration: underline;
color: rgba(255, 255, 255, 1) !important;
}
.vimeo.embed {
width: 368px;
height: 210px;
background-position: 50% 50%;
background-size: 100%;
margin-right: 8px;
overflow: hidden;
text-overflow: ellipsis;
}
.vimeo.wrapper:before {
position: absolute;
width: 368px;
height: 210px;
content: '';
background: url('../images/vi-ol.png');
display: block;
cursor: pointer;
}
.vimeo.wrapper:hover:before {
position: absolute;
width: 368px;
height: 210px;
content: '';
background: url('../images/vi-ol.png') 0 -210px;
display: block;
pointer-events: none;
}
.vimeo.unwrapping:before {
position: absolute;
width: 368px;
height: 210px;
content: '';
background: url('../images/vi-ol.png') 0 -420px;
display: block;
}
.vi-title-overlay {
position: relative;
display: inline;
top: 12px;
left: 10px;
color: #00ADEF !important;
background: rgba(23, 35, 34, 0.75);
overflow: hidden;
text-overflow: ellipsis;
font-weight: bold;
font-family: 'Helvetica Neue','Helvetica','Arial'!important;
font-size: 20px;
padding: 2px 4px;
text-decoration: none;
}
.vi-title-overlay:hover {
color: #FF5210 !important;
text-shadow: none !important;
}
.coub.embed {
width: 368px;
height: 207px;
background-position: 50% 50%;
background-size: 100%;
margin-right: 8px;
overflow: hidden;
text-overflow: ellipsis;
}
.coub.wrapper:before {
position: absolute;
width: 368px;
height: 207px;
content: '';
background: url('../images/co-ol.png');
display: block;
cursor: pointer;
}
.coub.wrapper:hover:before {
position: absolute;
width: 368px;
height: 207px;
content: '';
background: url('../images/co-ol.png') 0 -207px;
display: block;
pointer-events: none;
}
.coub.unwrapping:before {
position: absolute;
width: 368px;
height: 207px;
content: '';
background: url('../images/co-ol.png') 0 -414px;
display: block;
}
.co-title-overlay {
position: relative;
display: inline;
top: 12px;
left: 10px;
color: rgba(255, 255, 255, 0.85) !important;
overflow: hidden;
text-overflow: ellipsis;
font-family: 'Helvetica Neue','Helvetica','Arial'!important;
font-size: 15px;
text-decoration: none;
text-shadow: 0 0 12px #000;
}
.co-title-overlay:hover {
color: rgba(255, 255, 255, 1) !important;
}
.menu-sect {
display: none;
}
.dcxt-notifier {
position: fixed;
bottom: 25px;
right: 25px;
padding: 5px;
box-shadow: 0 0 20px #CCC !important;
color: #F00;
border-radius: 5px;
border-bottom-right-radius: 0px;
}
.uibutton {
font-size: 12px;
border-radius: 4px;
border: 1px solid #cccccc;
background: #f6f6f6 url(/css/images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;
text-decoration: none;
padding: 0 14px;
}
.uibutton:hover {
color: #c77405;
border: 1px solid #fbcb09;
background: #fdf5ce url(/css/images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;
}
#interface-notifier {
display: inline-block;
text-align: center;
padding: 10px;
position: fixed;
z-index: 10;
}
.bnr {
display: inline-block;
position: relative;
height: 100px;
width: 300px;
}
.bnrsupdate {
display: inline-block;
height: 39px;
width: 49px;
position: absolute;
background: url(/images/bnr-overlay.png);
bottom: 0;
right: 0;
opacity: 0;
-webkit-transition: opacity 0.2s;
-o-transition: opacity 0.2s;
-moz-transition: opacity 0.2s;
}
.bnr:hover .bnrsupdate {
opacity: 0.5;
}
.bnrsupdate:hover {
opacity:1!important;
}
.bnr-wrap {
text-align: center;
height: 100px;
}

206
css/kusabax.css Normal file
View File

@ -0,0 +1,206 @@
html, body {
font-size:12pt;
background:#E6E6D1;
color:#000000;
}
input, textarea {
background-color: #AEB08D;
color: #000;
border: 1px solid #000;
}
a {
background:inherit;
color:#6E735E;
text-decoration:none;
}
a:visited {
background:inherit;
color:#6E735E;
text-decoration:none;
}
a:hover {
color:#000;
background:inherit;
}
.filesize a {
text-decoration:underline;
}
.filesize a:visited {
text-decoration:underline;
}
.adminbar {
text-align:right;
background:inherit;
clear:both;
float:right;
}
.logo {
clear:both;
text-align:center;
background:inherit;
font-size:24pt;
color:#AF0A0F;
width:100%;
}
.replymode {
background:#6E735E;
color:#FFFFFF;
width:100%;
text-align: center;
font-weight: 800;
}
.catalogmode {
background:#6E735E;
color:#FFFFFF;
width:100%;
text-align: center;
font-weight: 800;
}
.postarea {
background:inherit;
}
.rules {
/*font-size:0.7em;*/
width: 468px;
font-size: 10px;
font-family: sans-serif;
}
.rules li {
margin-left: 1em;
/*text-indent: 0em;*/
}
.postblock {
background:#6E735E;
font-family: sans-serif;
color:#000000;
font-weight:800;
font-size: 80%;
padding: 0px 5px;
border: 1px solid;
}
.footer {
text-align:center;
font-size:10px;
font-family:sans-serif;
}
.passvalid {
background:#9988EE;
text-align:center;
width:100%;
color:#ffffff;
}
.dellist {
background:inherit;
text-align:center;
}
.delbuttons {
background:inherit;
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#0F8FE1;
color:#000000;
font-family:sans-serif;
font-size:14px;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#000000;
}
.row1 {
background:#9AD2F6;
font-family:sans-serif;
font-size:12px;
color:#000000;
}
.row2 {
background:#FFFFFF;
font-family:sans-serif;
font-size:12px;
color:#000000;
}
.unkfunc {
color:#789922;
}
.filesize {
font-size:12px;
font-family:sans-serif;
text-decoration:underline;
padding-left:3em;
}
.filetitle {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F0C5D;
font-weight:800;
}
.postername {
background:inherit;
font-size:12px;
font-family:serif;
color:#117743;
font-weight:800;
}
.oldpost {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F0C5D;
font-weight:800;
}
.omittedposts {
background:inherit;
font-size:18px;
font-family:serif;
color:#070707;
font-weight:800;
}
.reply {
background:#AEB08D;
color:#000000;
font-family:serif;
}
.replyhl {
background: #AEB08D;
color: #000000;
}
.doubledash {
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F0C5D;
font-weight:800;
}
.commentpostername {
background:inherit;
font-size:12px;
font-family:serif;
color:#117743;
font-weight:800;
}
.thumbnailmsg {
background:inherit;
font-size:9px;
font-family:sans-serif;
color:#000000;
}
.watchedthreads {
background-color: #AEB08D!important;
border: 1px dotted!important;
border-top: 0px none !important;
}
.reflinkpreview {
background-color: #AEB08D!important;
}

BIN
css/locked.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

157
css/manage_basic.css Normal file
View File

@ -0,0 +1,157 @@
html { min-width: 600px; }
body, div, td, th, h2, h3, h4 { /* redundant rules for bad browsers */
font-family: verdana,sans-serif;
font-size: x-small;
voice-family: "\"}\"";
voice-family: inherit;
font-size: small;
color: #333;
}
.clearhack { display: inline; } /*Clears Box Model Hack in IE5*/
body {
background: #EDEBE3;
color: #333;
padding: 1em 20px 3em 20px;
margin: 0;
}
a { color: #06C; }
a:hover { color: #333; }
a:active { color: #000; }
p { line-height: 140%; }
h1,h2 {
font-family: trebuchet ms;
font-weight: bold;
color: #333;
}
h1 {
font-size: 180%;
margin: 0;
}
h1 a { text-decoration: none; color: #333; }
h1 a:hover { border-bottom: 1px dotted #666; color: #000; }
h2 {
font-size: 140%;
padding-bottom: 2px;
border-bottom: 1px solid #CCC;
margin: 0;
}
p.note {
background: #EEE;
padding: 4px;
font-family: tahoma;
font-size: 85%;
line-height: 130%;
margin-top: 0;
}
br {
clear: left;
}
label,input {
display: block;
width: auto;
float: left;
margin-bottom: 10px;
}
label {
font-size: 12px;
text-align: right;
width: 175px;
padding-right: 20px;
}
.desc {
text-indent: 5px;
font-size : 80%;
/*white-space: nowrap;*/
}
.footer {
text-align:center;
font-size:10px;
font-family:sans-serif;
}
th,td {
font-size:10px;
font-family:verdana;
}
.unkfunc {
color:#789922;
}
.filesize {
font-size:12px;
font-family:sans-serif;
text-decoration:underline;
padding-left:3em;
}
.filetitle {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F0C5D;
font-weight:800;
}
.postername {
background:inherit;
font-size:12px;
font-family:serif;
color:#117743;
font-weight:800;
}
.oldpost {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F0C5D;
font-weight:800;
}
.omittedposts {
background:inherit;
font-size:18px;
font-family:serif;
color:#070707;
font-weight:800;
}
.reply {
background:#D6DAF0;
color:#000000;
font-family:serif;
}
.doubledash {
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
background:inherit;
font-size:18px;
font-family:serif;
color:#0F0C5D;
font-weight:800;
}
.commentpostername {
background:inherit;
font-size:12px;
font-family:serif;
color:#117743;
font-weight:800;
}
.thumbnailmsg {
background:inherit;
font-size:9px;
font-family:sans-serif;
color:#000000;
}

35
css/manage_menu.bup.css Normal file
View File

@ -0,0 +1,35 @@
a{color: #15C !important;}
ul {list-style: none;padding:0;}
h2{font-size: 13px;}
li:hover {text-decoration: underline;}
h1 a{color:#444;}
h1 {font-size: 14px;}
body{margin:0;}
.yoba {
-webkit-border-start: 6px solid rgb(78, 87, 100);
-webkit-padding-start: 18px;
color: #464E5A;
font-size: 12px;
cursor: pointer;
line-height: 17px;
margin: 5px 0;
text-transform: uppercase;
}
.yoba-l {
-webkit-padding-start: 10px;
color: #464E5A;
font-size: 12px;
margin: 0;
}
.yoba:hover{-webkit-border-start-color: rgb(221, 75, 57);}
#navbar-container li{margin-left: 10px;}
#title{
-webkit-user-select: none;
color: #303942;
font-size: 18px;
font-weight: normal;
margin-top: 1em;
-webkit-margin-before: 15px;
-webkit-margin-start: 15px;
color: #5C6166;
}

77
css/manage_menu.css Normal file
View File

@ -0,0 +1,77 @@
a{
color: #3399ff !important;
text-decoration: none !important;
}
a:hover {
color: #cc0000 !important;
text-decoration: none !important;
}
ul {
list-style: none;padding:0;
}
h2{
font-size: 13px;
}
h1 a{
color:#444;
}
h1 {
font-size: 14px;
}
body {
font-family: "Calibri", "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 14px;
color: #333;
margin:0;
background:transparent;
}
.yoba {
border-left: 6px solid rgb(78, 87, 100);
padding-left: 18px;
color: #464E5A;
font-size: 12px;
cursor: pointer;
line-height: 17px;
margin: 5px 0;
text-transform: uppercase;
}
.yoba-l {
pading-left: 10px;
color: #464E5A;
font-size: 12px;
margin: 0;
}
.yoba:hover {
border-color: #cc0000;
}
#navbar-container li {
padding-top: 4px;
padding-bottom: 4px;
padding-left: 10px;
}
#navbar-container li:hover {
background: #39F;
}
#navbar-container li:hover a {
color: white!important;
}
#title {
-webkit-user-select: none;
color: #303942;
font-size: 18px;
font-weight: bold;
margin-top: 1em;
margin-left: 15px;
color: #5C6166;
}

543
css/manage_page.bup.css Normal file
View File

@ -0,0 +1,543 @@
body {
font-family:'Open Sans',arial,sans-serif;
font-size: 13px;
color: #666;
background:#f7f8f9;
}
a {color: #00479F;text-decoration: none;}
#topmenu li {
float: left;
display: inline;
margin-left: 26px;
padding: 0;
line-height: 36px;
}
#topmenu li.current {
color:#000;
}
#main #menu {
height: 70px;
}
#naw {
float: left;
list-style: none;
margin: 0;
padding: 0;
color: #333;
font-weight: 600;
}
#main {
width: 870px;
margin: 24px auto;
}
#main #content {
margin: 50px 0 54px 0;
}
.center{text-align: center;}
#main #topmenu {
height: 70px;
}
#content .header2 {
margin-top: 0px;
background-color: #EEF2FB;
border: 1px solid #DDE7FF;
color:#333;
font-size: 100%;
padding: 1px 5px 1px 5px;
}
.newssub {position: absolute;}
.permalink {text-align: right;display: block;}
#content .header2 a {color:#000;text-decoration: underline;}
h1 {
color: #333;
font-weight: 500;
font-size: 40px;
margin: 0;
padding: 0;
}
h1 {
font-weight: 600;
font-size: 22px;
line-height: 30px;
letter-spacing: -.02em;
margin: 0 0 10px 0;
padding: 0;
}
h2 {
font-color: #666;
font-weight: 400;
font-size: 18px;
margin: 0;
padding: 10px 0 0 0;
}
h2 {
font-weight: 600;
font-size: 18px;
line-height: 24px;
padding: 0;
margin: 0 0 10px 0;
}
/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
input[type='checkbox'] {
-webkit-box-shadow: inset 0 1px 2px white,
0 1px 2px rgba(0, 0, 0, .2);
-webkit-appearance: none;
-webkit-margin-start: 0;
-webkit-margin-end: 3px;
background: -webkit-linear-gradient(#fafafa, #dcdcdc);
border-radius: 3px;
border: 1px solid #a0a0a0;
display: inline-block;
height: 16px;
margin-bottom: 0;
margin-top: 0;
position: relative;
top: 3px;
vertical-align: baseline;
width: 16px;
}
input[type='checkbox']:disabled {
opacity: .75;
}
input[type='checkbox']:not(:disabled):not(:active):hover {
background: -webkit-linear-gradient(#fff, #e6e6e6);
text-shadow: 0 1px 0 rgba(255, 255, 255, 1);
}
input[type='checkbox']:not(:disabled):active {
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .2);
background: -webkit-linear-gradient(#f0f0f0, #bebebe);
border: 1px solid #808080;
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
input[type='checkbox']:checked::before {
color: #808080;
content: url('../images/checkmark.png');
font-size: 13px; /* Explicitly set the font size so that the positioning
of the checkmark is correct. */
height: 16px;
left: 2px;
top:2px;
position: absolute;
}
input[type='radio'] {
-webkit-box-shadow: inset 0 1px 2px white,
0 1px 2px rgba(0, 0, 0, .2);
-webkit-appearance: none;
-webkit-margin-start: 0;
-webkit-margin-end: 3px;
-webkit-transition: border 500ms;
background: -webkit-linear-gradient(#fafafa, #dcdcdc);
border-radius: 100%;
border: 1px solid #a0a0a0;
display: inline-block;
height: 15px;
margin-bottom: 0;
position: relative;
top: 3px;
vertical-align: baseline;
width: 15px;
}
input[type='radio']:disabled {
opacity: .75;
}
input[type='radio']:not(:disabled):not(:active):hover {
background: -webkit-linear-gradient(#fff, #e6e6e6);
text-shadow: 0 1px 0 rgba(255, 255, 255, 1);
}
input[type='radio']:not(:disabled):active {
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .2);
background: -webkit-linear-gradient(#f0f0f0, #bebebe);
border: 1px solid #808080;
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
input[type='radio']:checked::before {
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5);
-webkit-margin-start: 4px;
background: #808080;
border-radius: 10px;
content: '';
display: inline-block;
font-size: 13px;
font-weight: 400;
height: 5px;
left: 0;
margin-top: 4px;
opacity: 1;
position: absolute;
top: 0;
vertical-align: top;
width: 5px;
}
html[dir='rtl'] input[type='radio']:checked::before {
right: 0;
}
input[type='radio']:active:checked::before {
background: #606060;
}
/* .checkbox and .radio classes wrap labels. */
.checkbox,
.radio {
margin: 9px 0;
}
.checkbox label,
.radio label {
display: -webkit-box;
}
/* Make sure long spans wrap at the same place they start. */
.checkbox label input ~ span,
.radio label input ~ span {
-webkit-box-flex: 1;
-webkit-margin-start: 0.4em;
display: block;
}
.checkbox label input[type=checkbox],
.radio label input[type=radio] {
margin-top: 0;
top: 0;
vertical-align: top;
}
/* These rules are copied from button.css */
input[type='checkbox']:not(.custom-appearance):focus,
input[type='radio']:not(.custom-appearance):focus {
-webkit-box-shadow: inset 0 1px 2px white,
0 1px 2px rgba(0, 0, 0, .2),
0 0 1px #c0c0c0,
0 0 1px #c0c0c0,
0 0 1px #c0c0c0;
-webkit-transition: border-color 200ms;
border-color: #4080fa;
outline: none;
}
label > input[type=radio] ~ span,
label > input[type=checkbox] ~ span,
input[type=checkbox] ~ label {
color: #444;
}
label:hover > input[type=checkbox]:disabled ~ span,
label:hover > input[type=radio]:disabled ~ span,
input[type=checkbox]:disabled ~ label:hover {
color: #888;
}
label:hover > input[type=checkbox]:not(:disabled) ~ span,
label:hover > input[type=radio]:not(:disabled) ~ span,
input[type=checkbox]:not(:disabled) ~ label:hover {
color: #222;
}
/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
button:not(.custom-appearance),
input[type='button']:not(.custom-appearance),
input[type='submit']:not(.custom-appearance) {
-webkit-border-radius: 3px;
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-webkit-user-select: none;
background: -webkit-linear-gradient(#fafafa, #f4f4f4 40%, #e5e5e5);
border: 1px solid #aaa;
color: #444;
font-size: inherit;
margin-bottom: 0;
min-width: 4em;
padding: 3px 12px;
}
button:not(.custom-appearance):hover,
input[type='button']:not(.custom-appearance):hover,
input[type='submit']:not(.custom-appearance):hover {
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
background: #ebebeb -webkit-linear-gradient(#fefefe, #f8f8f8 40%, #e9e9e9);
border-color: #999;
color: #222;
}
button:not(.custom-appearance):active,
input[type='button']:not(.custom-appearance):active,
input[type='submit']:not(.custom-appearance):active {
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
background: #ebebeb -webkit-linear-gradient(#f4f4f4, #efefef 40%, #dcdcdc);
color: #333;
}
button[disabled]:not(.custom-appearance),
input[type='button'][disabled]:not(.custom-appearance),
input[type='submit'][disabled]:not(.custom-appearance),
button[disabled]:not(.custom-appearance):hover,
input[type='button'][disabled]:not(.custom-appearance):hover,
input[type='submit'][disabled]:not(.custom-appearance):hover {
-webkit-box-shadow: none;
background: -webkit-linear-gradient(#fafafa, #f4f4f4 40%, #e5e5e5);
border-color: #aaa;
color: #888;
}
button:not(.custom-appearance):focus,
input[type='submit']:not(.custom-appearance):focus,
input[type='text']:not(.custom-appearance):focus,
select:not(.custom-appearance):focus {
-webkit-box-shadow: inset 0 1px 2px white,
0 1px 2px rgba(0, 0, 0, .2),
0 0 1px #c0c0c0,
0 0 1px #c0c0c0,
0 0 1px #c0c0c0;
-webkit-transition: border-color 200ms;
/* We use border color because it follows the border radius (unlike outline).
* This is particularly noticeable on mac. */
border-color: #4080fa;
outline: none;
}
/* Search boxes use an outline because it follows the contours of the box. */
input[type='search']:not(.custom-appearance):focus {
outline-color: #4080fa;
}
/* TODO(jhawkins): Refactor button styling and remove !important here. This is
* currently necessary because individual page button element selectors have
* higher specificity.
*/
.link-button,
.link-button:focus {
-webkit-box-shadow: none !important;
background: transparent none !important;
border: none !important;
color: #1155cc !important;
cursor: pointer;
margin: 0;
padding: 0 4px !important;
}
.link-button:hover {
text-decoration: underline;
}
.link-button:active {
color: #052577 !important;
text-decoration: underline;
}
/* Copyright (c) 2011 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
* This is the generic select css used on various WebUI implementations.
*/
select {
-webkit-appearance: button;
-webkit-border-radius: 3px;
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-webkit-padding-end: 20px;
-webkit-padding-start: 8px;
-webkit-user-select: none;
background-image: url("../images/select.png"),
-webkit-linear-gradient(#fafafa, #f4f4f4 40%, #e5e5e5);
background-position: center right;
background-repeat: no-repeat;
border: 1px solid #aaa;
color: #555;
font-size: inherit;
margin: 0;
overflow: hidden;
padding-top: 2px;
padding-bottom: 2px;
text-overflow: ellipsis;
white-space: nowrap;
}
html[dir='rtl'] select {
background-position: center left;
}
select:disabled {
color: graytext;
background-image: url("../images/disabled_select.png"),
-webkit-linear-gradient(#fefefe, #f8f8f8 40%, #e9e9e9);
}
select:enabled:hover {
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
background-image: url("../images/select.png"),
-webkit-linear-gradient(#fefefe, #f8f8f8 40%, #e9e9e9);
color: #333;
}
select:enabled:active {
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
background-image: url("../images/select.png"),
-webkit-linear-gradient(#f4f4f4, #efefef 40%, #dcdcdc);
color: #444;
}
.toolbutton {
vertical-align: middle;
padding: 1px;
border: 1px solid #F0F0EE;
cursor: default;
white-space: nowrap;
}
.toolbutton:hover {
vertical-align: middle;
padding: 1px;
border: 1px solid #0A246A;
background-color: #B6BDD2;
}
#wikkatoolbar {
border-bottom: 1px solid #CCC;
background-color: #F0F0EE;
padding: 2px;
margin-bottom: 2px;
cursor: default;
}
#edit{background: #fff;border: 1px solid #ccc;}
#message {
border: none;
width: 864px;
}
#nqwbar{
border-left: 1px solid #DDD;
z-index: 9999;
position: fixed; width: 100%; top: 0; left: 0;
border-bottom: 1px solid #DDD;
background: #eee;
}
#nwqpol{
margin: 0 auto;
padding: 10px 0 10px 0;
color: #777;
width: 870px;
height: 26px;
}
#nwqpol h2{
border-bottom:none;
position: absolute;
color:#666;
}
#nwqhea{
padding: 5px;
color: #EEE;
background: url('https://www.weylandindustries.com/img/wc_bg-greydark.png');
margin: 0 auto;
}
.permalink {
float:right;
}
.title{
background: #EEE;
color: #444;
padding: 2px 10px 2px 10px;
border-bottom: 1px solid #ddd;
margin: 0;
font-size: 100%;
}
/*Кнопки для шапки*/
.gp-buttons-group {
overflow: hidden;
}
.gp-buttons-group .gp-button, .gp-button-single {
display: block; float: left;
margin: 0; padding: 5px 10px;
background-color: #f5f5f5;
border: 1px solid #dcdcdc;
text-decoration: none;
font-size: 13px; font-family: Ubuntu, Tahoma, Arial; color: #888;
margin-right: -1px;
position: relative;
outline: 0;
}
.gp-button-single {
float: none;
display: inline-block;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
}
.gp-buttons-group .gp-button:hover, .gp-button-single:hover {
border-color: #ccc;
color: #666;
z-index: 500;
}
.gp-buttons-group .gp-button-active, .gp-buttons-group .gp-button:active, .gp-button-single:active, .gp-button-single-active {
-webkit-box-shadow: inset 0px 0px 6px #ccc;
-moz-box-shadow: inset 0px 0px 6px #ccc;
-o-box-shadow: inset 0px 0px 6px #ccc;
box-shadow: inset 0px 0px 6px #ccc;
border-color: #ccc;
color: #666;
z-index: 500;
background-color: #f3f3f3;
}
.gp-buttons-group .gp-button:first-child {
-webkit-border-top-left-radius: 3px;
-webkit-border-bottom-left-radius: 3px;
-moz-border-top-left-radius: 3px;
-moz-border-bottom-left-radius: 3px;
-o-border-top-left-radius: 3px;
-o-border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
.gp-buttons-group .gp-button:last-child {
-webkit-border-top-right-radius: 3px;
-webkit-border-bottom-right-radius: 3px;
-moz-border-top-right-radius: 3px;
-moz-border-bottom-right-radius: 3px;
-o-border-top-right-radius: 3px;
-o-border-bottom-right-radius: 3px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
.gp-button-icon {
min-width: 20px;
background-position: center;
background-repeat: no-repeat;
}
.gp-icon-twitter {background-image: url('images/twitter-icon.png');}
/*Таблицы*/
.newTable{
border: 1px solid #dedede;
background: whiteSmoke;
}
.header {
border-color: #DEDEDE;
background: #FEFEFE;
}
td.IP{
background: #EFEFEF;
}

229
css/manage_page.css Normal file
View File

@ -0,0 +1,229 @@
body {
font-family: "Calibri", "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 15px;
color: #333;
background:transparent;
}
h1,h2 {
font-weight: bold;
}
/*h1,h2 {
font-family: trebuchet ms;
font-weight: bold;
color: #333;
}
h1 {
font-size: 180%;
margin: 0;
}
h2 {
font-size: 140%;
padding-bottom: 2px;
border-bottom: 1px solid #CCC;
margin: 0;
}*/
br {
clear: left;
}
label,input {
display: block;
width: auto;
float: left;
margin-bottom: 10px;
}
label {
font-size: 12px;
text-align: right;
width: 175px;
padding-right: 20px;
}
/*.desc {
text-indent: 5px;
font-size : 80%;
}*/
a {
color: #3399ff !important;
text-decoration: none !important;
}
a:hover {
color: #cc0000 !important;
text-decoration: none !important;
}
#topmenu li {
float: left;
display: inline;
margin-left: 26px;
padding: 0;
line-height: 36px;
}
#topmenu li.current {
color:#000;
}
#main #menu {
height: 70px;
}
#naw {
float: left;
list-style: none;
margin: 0;
padding: 0;
color: #333;
font-weight: 600;
}
#main {
width: 870px;
margin: 24px auto;
}
#main #content {
margin: 50px 0 54px 0;
}
.center{text-align: center;}
#main #topmenu {
height: 70px;
}
#content .header2 {
margin-top: 0px;
background-color: #EEF2FB;
border: 1px solid #DDE7FF;
color:#333;
font-size: 100%;
padding: 1px 5px 1px 5px;
}
.newssub {position: absolute;}
.permalink {text-align: right;display: block;}
#content .header2 a {color:#000;text-decoration: underline;}
h1 {
/*font-weight: 600;*/
font-size: 22px;
line-height: 30px;
letter-spacing: -.02em;
margin: 0 0 10px 0;
padding: 0;
}
h2 {
font-color: #666;
/*font-weight: 400;*/
font-size: 18px;
margin: 0;
}
/*h2 {
font-weight: 600;
font-size: 18px;
line-height: 24px;
padding: 0;
margin: 0 0 10px 0;
}
*/
#help {
opacity: 0;
display: inline-block;
max-width: 400px;
position: fixed;
background: rgba(241,241,241,0.98);
border: 1px solid rgba(0, 128, 255, 0.5);
padding: 10px;
box-shadow: 0 0 42px rgba(51, 153, 255, 0.56);
border-radius: 5px;
-webkit-transition: top 0.2s;
-o-transition: top 0.2s;
transition: top 0.2s;
-moz-transition: top 0.2s;
}
._td {
display: table-cell;
box-sizing: border-box;
}
.banner-entry {
border: 1px solid rgba(0, 128, 255, 0.1);
display: inline-block;
-webkit-transition: background 0.2s, box-shadow 0.2s, border-color 0.2s;
transition: background 0.2s, box-shadow 0.2s, border-color 0.2s;
-o-transition: background 0.2s, box-shadow 0.2s, border-color 0.2s;
-moz-transition: background 0.2s, box-shadow 0.2s, border-color 0.2s;
-ms-transition: background 0.2s, box-shadow 0.2s, border-color 0.2s;
border-radius: 5px;
}
.banner-entry, ._td {
height: 110px;
}
.banner-entry:hover {
background: rgba(241, 241, 241, 0.98);
border: 1px solid rgba(0, 128, 255, 0.5);
box-shadow: 0 0 42px rgba(51, 153, 255, 0.56);
}
.deleting, .deleting.banner-entry:hover {
background: rgba(255, 232, 232, 0.98);
border: 1px solid rgba(214, 17, 0, 0.5);
box-shadow: 0 0 42px rgba(214, 17, 0, 0.56);
}
.deleting img{
filter: grayscale(1);
-webkit-filter: grayscale(1);
-moz-filter: grayscale(1);
-o-filter: grayscale(1);
-ms-filter: grayscale(1);
}
.editing, .editing.banner-entry:hover {
background: rgba(233, 248, 232, 0.98);
border: 1px solid rgba(13, 163, 7, 0.5);
box-shadow: 0 0 42px rgba(13, 163, 7, 0.56);
}
.boardname {
vertical-align: top;
height: 110px;
line-height: 110px;
min-width: 170px;
text-align: center;
font-size: 20px;
font-weight: bold;
}
.custom-link {
vertical-align: middle;
width: 170px;
padding: 5px;
-ms-word-break: break-all;
/* Be VERY careful with this, breaks normal words wh_erever */
word-break: break-all;
/* Non standard for webkit */
word-break: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.custom-link-a {
display: inline-block;
max-height: 100px;
overflow-y: auto;
}
.actions {
vertical-align: middle;
min-width: 120px;
}
.bannerimg {
min-width: 310px;
}
.bannerimg, actions {
vertical-align: middle;
}
.custom-link-a {
text-decoration: underline!important;
font-size: 16px;
}
/*input[type="file"] {
margin: 0;
}*/

108
css/manage_tabs.css Normal file
View File

@ -0,0 +1,108 @@
#main {
border: 1px solid #666;
clear: both;
background: #FFF3B3;
padding-top: 2em;
}
#contents {
padding: 1.5em;
background: #FFFDF3;
min-height: 300px;
}
#header {
position: relative;
width: 100%;
height: 3em;
width: 45em; /* a width is required for Opera, older Mozilla browsers, and Konqueror browsers */
}
#header ul#primary {
margin: 0;
padding: 0;
position: absolute;
bottom: -1px;
width: 45em; /* a width is required for Opera, older Mozilla browsers, and Konqueror browsers */
}
#header ul#primary li {
display: inline;
list-style: none;
}
#header ul#primary a,#header ul#primary span,#header ul#primary a.current {
width: 8em;
display: block;
float: left;
padding: 4px 0;
margin: 1px 2px 0 0;
text-align: center;
font-family: tahoma, verdana, sans-serif;
font-size: 85%;
text-decoration: none;
color: #333;
}
#header ul#primary span,#header ul#primary a.current,#header ul#primary a.current:hover {
border: 1px solid #666;
border-bottom: none;
background: #FFF3B3;
padding-bottom: 6px;
margin-top: 0;
}
#header ul#primary a {
background: #FFFAE1;
border: 1px solid #AAA;
border-bottom: none;
}
#header ul#primary a:hover {
margin-top: 0;
border-color: #666;
background: #FFF7CD;
padding-bottom: 5px;
}
#header ul#secondary {
position: absolute;
margin: 0;
padding: 0;
bottom: -1.4em;
left: 1px;
width: 50em; /* a width is required for Opera, older Mozilla browsers, and Konqueror browsers */
}
#header ul#secondary li a,#header ul#secondary li span {
width: auto;
display: block;
float: left;
padding: 0 10px;
margin: 0;
text-align: auto;
border: none;
border-right: 1px dotted #AAA;
background: none;
}
#header ul#secondary li a {
color: #06C;
text-decoration: underline;
}
#header ul#secondary li a:hover {
color: #333;
background: transparent;
padding: 0 10px;
border: none;
border-right: 1px dotted #AAA;
}
#header ul#secondary li a:active {
color: #000;
background: transparent;
}
#header ul#secondary li:last-child a { border: none; }

9
css/menu_global.css Normal file
View File

@ -0,0 +1,9 @@
img {
border: none;
}
.pop {
font-weight: bold;
}
.trial {
font-style: italic;
}

300
css/modern.css Normal file
View File

@ -0,0 +1,300 @@
html, body {
background-color: #EEEEEE;
color: #333333;
font-family: "Open Sans", "Trebuchet MS",Trebuchet,sans-serif;
background: url(/css/images/modern/bg.png);
font-size: 15px;
}
a {
color: rgb(33, 169, 175);
}
a:visited {
color: rgb(33, 169, 175);
}
a:hover {
color: rgb(42, 120, 139);
text-shadow: 0 0 3px white;
}
.adminbar {
clear:both;
float:right;
font-size: .8em;
}
.adminbar a {
font-weight: bold;
}
.logo {
clear:both;
text-align:left;
font-size:2em;
font-weight: bold;
color: rgb(33, 169, 175);
/*width:100%;*/
}
.replymode, .passvalid {
background:#DDDDDD;
text-align:center;
padding:2px;
color:#2266AA;
clear: both;
font-weight: bold;
margin-bottom: .5em;
border: solid 1px #CCCCCC;
border-radius: 5px;
}
.catalogmode {
background: #0040E0;
text-align: center;
padding: 2px;
color: #DDDDDD;
clear: both;
font-weight: bold;
margin-bottom: .5em;
border: solid 1px #CCCCCC;
border-radius: 5px;
}
.postarea {
}
.rules {
font-size:0.7em;
}
.postblock {
background:transparent;
color:#002244;
font-weight:bold;
}
.footer {
text-align:center;
font-size:12px;
font-family:serif;
margin: 2em 0 0 0;
}
.dellist {
font-weight: bold;
text-align:center;
}
.delbuttons {
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#DDDDDD;
color:#002244;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#800000;
}
.row1 {
background:#DDDDDD;
color:#002244;
}
.row2 {
background:#CCCCCC;
color:#002244;
}
.unkfunc {
background:inherit;
color:#789922;
}
.reflink {
font-size: .8em;
font-weight: bold;
padding-right: 6px;
}
.filesize {
text-decoration:none;
color: #666666;
font-size: .8em;
}
.filetitle {
background:inherit;
font-size:1.2em;
color:#002244;
font-weight:bold;
}
.postername {
color:#004A99;
font-weight:bold;
}
.postertrip {
color:#FF3300;
}
.oldpost {
color:#CC1105;
font-weight:bold;
}
.omittedposts, .omittedposts a, .xlink {
color:#666666 !important;
}
.reply {
background: #fafafa;
box-shadow: 0 1px 1px rgb(185, 185, 185);
padding: 0;
padding-right: 2px;
border-radius: 0px;
}
blockquote {
margin: .5em .5em .5em 1em;
}
blockquote p {
margin: 0;
padding: 0;
}
.reply blockquote {
margin: .5em;
}
.doubledash {
display: none;
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
font-size: 1.2em;
color:#002244;
font-weight:bold;
}
.commentpostername {
color:#004A99;
font-weight:800;
}
.thumbnailmsg {
font-size: .8em;
color:#666666;
}
hr {
border-style: solid none none none;
border-width: 1px;
border-color: #BBBBBB;
}
table {
border-style: none;
}
table td {
border-style: none;
}
.nothumb {
background-color: #FFFFFF;
border-style: dotted;
margin: .3em .5em;
}
.abbrev {
color:#666666;
}
.highlight {
background:#EEDACB;
color:#333333;
border: 2px dashed #EE6600;
-moz-border-radius: 5px;
border-radius: 5px;
}
#watchedthreads {
background-color: #DDDDDD !important;
border: 1px solid #CCCCCC !important;
border-radius: 5px;
}
.spritebtn {
background-color: #aba8a6;
border-color: #aba8a6;
}
.spritebtn:hover {
background-color: rgb(42, 120, 139);
border-color: rgb(42, 120, 139);
}
.topbar-left {
height: 0px;
}
.topbar-right {
height: 0px;
}
.topbar-center {
height: 6px;
background: rgba(0, 0, 0, 0.06);
}
.content-background {
background-color: #f3f3f3;
box-shadow: 0 1px 1px rgb(185, 185, 185);
}
.maintable {
width: 100%;
table-layout: fixed;
}
#overlay_menu {
-webkit-transition: box-shadow 0.2s;
box-shadow: none;
}
#overlay_menu:hover {
box-shadow: 0 0 20px #ccc;
}
.replies table {
border-spacing: 2px 4px;
}
.menu-item {
padding: 2px 5px;
border-radius: 3px;
}
.menu-item:hover {
background: rgba(255, 255, 255, 0.4);
}
.maintable hr {
margin-left: -9px;
margin-right: -9px;
}
.reflinkpreview {
border: 1px #CCC solid;
border-radius: none;
-webkit-box-shadow: 0 0 20px #ccc;
-moz-box-shadow: 0 0 20px #ccc;
box-shadow: 0 0 20px #ccc;
}
/* .replies table, .replies table tbody, .replies table tbody tr {
display: block;
}
.reply {
max-width: 100%;
margin: 4px;
} */
.reflinkpreview .reply {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
/*margin: 0px;*/
}
.prettyprint {
overflow: auto;
max-height: 500px;
}
.prettyprint-container {
display: inline-block;
margin-left: 2px;
margin-bottom: 4px;
margin-top: 4px;
}
.omittedposts a, .xlink {
text-decoration: inherit;
border-bottom: 1px dashed rgb(133, 133, 133);
}

232
css/photon.css Normal file
View File

@ -0,0 +1,232 @@
html, body {
background-color: #EEEEEE;
color: #333333;
font-family: "Trebuchet MS",Trebuchet,serif;
}
a {
color: #FF6600;
}
a:visited {
color: #FF6600;
}
a:hover {
color: #0066FF;
}
.adminbar {
clear:both;
float:right;
font-size: .8em;
}
.adminbar a {
font-weight: bold;
}
.logo {
clear:both;
text-align:left;
font-size:2em;
font-weight: bold;
color:#FF6600;
/*width:100%;*/
}
.replymode, .passvalid {
background:#DDDDDD;
text-align:center;
padding:2px;
color:#2266AA;
clear: both;
font-weight: bold;
margin-bottom: .5em;
border: solid 1px #CCCCCC;
border-radius: 5px;
}
.catalogmode {
background: #0040E0;
text-align: center;
padding: 2px;
color: #DDDDDD;
clear: both;
font-weight: bold;
margin-bottom: .5em;
border: solid 1px #CCCCCC;
border-radius: 5px;
}
.postarea {
}
.rules {
font-size:0.7em;
}
.postblock {
background:transparent;
color:#002244;
font-weight:bold;
}
.footer {
text-align:center;
font-size:12px;
font-family:serif;
margin: 2em 0 0 0;
}
.dellist {
font-weight: bold;
text-align:center;
}
.delbuttons {
text-align:center;
padding-bottom:4px;
}
.managehead {
background:#DDDDDD;
color:#002244;
padding:0px;
}
.postlists {
background:#FFFFFF;
width:100%;
padding:0px;
color:#800000;
}
.row1 {
background:#DDDDDD;
color:#002244;
}
.row2 {
background:#CCCCCC;
color:#002244;
}
.unkfunc {
background:inherit;
color:#789922;
}
.reflink {
font-size: .8em;
font-weight: bold;
}
.filesize {
text-decoration:none;
color: #666666;
font-size: .8em;
}
.filetitle {
background:inherit;
font-size:1.2em;
color:#002244;
font-weight:bold;
}
.postername {
color:#004A99;
font-weight:bold;
}
.postertrip {
color:#FF3300;
}
.oldpost {
color:#CC1105;
font-weight:bold;
}
.omittedposts a, .xlink {
color:#666666;
}
.reply {
background:#DDDDDD;
border: solid 1px #CCCCCC;
padding: 0;
padding-right: 4px;
border-radius: 5px;
}
blockquote {
margin: .5em .5em .5em 1em;
}
blockquote p {
margin: 0;
padding: 0;
}
.reply blockquote {
margin: .5em;
}
.doubledash {
display: none;
vertical-align:top;
clear:both;
float:left;
}
.replytitle {
font-size: 1.2em;
color:#002244;
font-weight:bold;
}
.commentpostername {
color:#004A99;
font-weight:800;
}
.thumbnailmsg {
font-size: .8em;
color:#666666;
}
hr {
border-style: solid none none none;
border-width: 1px;
border-color: #BBBBBB;
}
table {
border-style: none;
}
table td {
border-style: none;
}
.nothumb {
background-color: #FFFFFF;
border-style: dotted;
margin: .3em .5em;
}
.abbrev {
color:#666666;
}
.highlight {
background:#EEDACB;
color:#333333;
border: 2px dashed #EE6600;
-moz-border-radius: 5px;
border-radius: 5px;
}
#watchedthreads {
background-color: #DDDDDD !important;
border: 1px solid #CCCCCC !important;
border-radius: 5px;
}
.spritebtn {
background-color: #aba8a6;
border-color: #aba8a6;
}
.spritebtn:hover {
background-color: #777;
border-color: #777;
}
.topbar-left {
height: 0px;
}
.topbar-right {
height: 0px;
}
.topbar-center {
height: 0px;
}
.content-background {
background-color: #EEEEEE;
}
.maintable {
width: 100%;
table-layout: fixed;
}
.omittedposts a, .xlink {
text-decoration: inherit;
border-bottom: 1px dashed rgb(133, 133, 133);
}

1
css/prettify.css Normal file
View File

@ -0,0 +1 @@
.pln{color:inherit}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px dashed #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}

89
css/site_autumn.css Normal file
View File

@ -0,0 +1,89 @@
body {
font-family: sans-serif;
font-size: 75%;
background: fixed url(images/photon/bg_bottom.png) bottom repeat-x;
background-color: #BBBBBB;
color: #000000;
margin: 0;
width: 90%;
}
a {
color: #666666;
}
h2 {
margin: 0px;
padding: 2px;
font-size: 100%;
background-image: url(images/photon/topbar-center.png);
background-repeat: repeat-x;
color: #333333;
}
h2 a {
text-decoration: none;
color:#333333;
}
h1, h3, .menu {
font-family: Verdana,Tahoma,sans-serif;
}
h1 {
margin: 0;
/*color: #800;*/
text-align: center;
margin-top: 1em;
}
h3 {
margin: 0;
/*color: #800;*/
text-align: center;
font-weight: normal;
font-size: medium;
}
.menu {
margin-top: 1em;
text-align: center;
}
.content {
margin-left: 3em;
padding: 0px;
background-color: #EEEEEE;
border: solid 1px #666666;
}
.newssub {
padding: 2px;
position: absolute;
background-color: #EEEEEE;
background-image: url(images/photon/topbar-center.png);
background-repeat: repeat-x;
}
.permalink {
padding: 2px;
text-align: right;
display: block;
}
.permalink a {
color: #333333;
text-decoration: underline;
}
/*h1 { font-size: 150% }*/
/*h2 { font-size: 100%; margin-top: 1em }
.hl {
font-style: italic;
}
.plus { float: right; font-size: 8px; font-weight: normal; padding: 1px 4px 2px 4px; margin: 0px 0px; background: #eb9; color: #000; border: 1px
solid #CCC; cursor: hand; cursor: pointer }
.plus:hover { background: #da8; border: 1px solid #c97 }
ul { list-style: none; padding-left: 0px; margin: 0px }
li { margin: 0px }
li:hover { background: #fec; }
li a { display: block; width: 100%; }/*

87
css/site_burichan.css Normal file
View File

@ -0,0 +1,87 @@
body {
font-family: sans-serif;
font-size: 75%;
background: #EEF2FF;
color: #000;
margin: 0;
width: 90%;
}
#topmenu li {
display: block;
float: left;
border: 1px solid #9295a4;
padding-top: 3px;
padding-bottom: 2px;
padding-left: 10px;
padding-right: 10px;
border-left: none;
margin-top: -7px;
background-color: #DFDFFE;
}
#topmenu li.first {
border-left: 1px solid #9295a4;
}
#topmenu li.current {
margin-top: -8px;
padding-top: 5px;
border-bottom: none;
background-color: #D6DAF0;
}
h2 {
margin-top: 0px;
margin-left: 0px;
background: #D6DAF0;
font-size: 100%;
}
h2 a {
text-decoration: none;
color: #550;
}
h1, h3, .menu {
font-family: Verdana,Tahoma,sans-serif;
}
h1 {
margin: 0px;
color: #800;
text-align: center;
margin-top: 1em;
}
h3 {
margin: 0px;
color: #800;
text-align: center;
font-weight: normal;
font-size: medium;
}
.menu {
margin-top: 1em;
text-align: center;
}
.content {
margin-left: 3em;
text-align: justify;
padding-left: 4px;
}
.newssub {
position: absolute;
}
.permalink {
text-align: right;
display: block;
}
.permalink a {
color: blue;
text-decoration: none;
}

Some files were not shown because too many files have changed in this diff Show More