®© ᠩâ, çâ® 㤠«®áì ¯à®ç¨â âì
This commit is contained in:
commit
ead6f5ccd1
14
500.html
Normal file
14
500.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<html>
|
||||||
|
<head><title>Ошибка 500</title>
|
||||||
|
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
|
||||||
|
<link type="text/css" rel="stylesheet" href="white.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Ой</h1>
|
||||||
|
Похоже,что произошла ошибка №500.<br>
|
||||||
|
Эта ошибка возникает из-за дыр в сценариях perl.<br>
|
||||||
|
Прошу вас написать автору на oreolek<at>gmail.com,указав введенную команду.Обнаруженные дыры обычно довольно быстро исправляются.
|
||||||
|
Пока же вернитесь назад и продолжите чтение.<br>
|
||||||
|
С уважением,<br>
|
||||||
|
<i>Oreolek.</i>
|
||||||
|
</body>
|
98
Raven.svg
Normal file
98
Raven.svg
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="744.09448819"
|
||||||
|
height="1052.3622047"
|
||||||
|
id="svg2"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.45.1"
|
||||||
|
sodipodi:docbase="C:\Alex\My site_Mk3"
|
||||||
|
sodipodi:docname="Raven.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||||
|
<defs
|
||||||
|
id="defs4" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.98994949"
|
||||||
|
inkscape:cx="404.42157"
|
||||||
|
inkscape:cy="698.86405"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:window-width="1024"
|
||||||
|
inkscape:window-height="721"
|
||||||
|
inkscape:window-x="796"
|
||||||
|
inkscape:window-y="-4" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 213.14219,265.45335 L 213.14219,265.45335 L 79.802051,260.40259 C 207.08127,205.85435 208.09142,206.8645 208.09142,206.8645 C 243.44676,133.12337 299.00515,136.15382 299.00515,136.15382 C 440.00243,134.70561 403.04633,214.92758 412.14224,216.96602"
|
||||||
|
id="path2160"
|
||||||
|
sodipodi:nodetypes="cccccc" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
id="path2162"
|
||||||
|
sodipodi:cx="302.03561"
|
||||||
|
sodipodi:cy="202.8239"
|
||||||
|
sodipodi:rx="29.294424"
|
||||||
|
sodipodi:ry="18.182745"
|
||||||
|
d="M 331.33004 202.8239 A 29.294424 18.182745 0 1 1 272.74119,202.8239 A 29.294424 18.182745 0 1 1 331.33004 202.8239 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:#000000"
|
||||||
|
id="path2164"
|
||||||
|
sodipodi:cx="299.00516"
|
||||||
|
sodipodi:cy="203.32896"
|
||||||
|
sodipodi:rx="7.0710678"
|
||||||
|
sodipodi:ry="16.667517"
|
||||||
|
d="M 306.07623,203.32896 A 7.0710678,16.667517 0 1 1 305.83039,198.97226 L 299.00516,203.32896 z"
|
||||||
|
sodipodi:start="0"
|
||||||
|
sodipodi:end="6.0187242" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 410.12193,212.92542 C 407.09148,312.93052 524.26918,413.94577 524.26918,413.94577 L 589.92909,217.97618 L 539.42146,432.12852 L 638.41641,299.79854 L 545.48237,440.20974 L 705.08648,389.70211 L 705.08648,389.70211 L 552.55344,449.30111 L 552.55344,449.30111 L 708.11693,465.46355 L 536.391,458.39249 C 438.4062,503.84936 461.63971,550.31637 461.63971,550.31637 L 492.95444,568.49911 L 444.46712,553.34683 L 422.24376,579.61079 L 429.31483,547.28591 L 395.9798,569.50927 L 443.45697,488.69706 C 357.594,460.41279 328.29958,480.61584 328.29958,480.61584 L 362.64476,566.47881 L 330.31988,541.22499 L 308.09653,571.52957 L 307.08637,541.22499 L 281.83256,556.37728 L 297.995,526.07271 L 299.00515,481.62599 C 236.3757,449.30111 239.40615,457.38233 239.40615,457.38233 C 128.28937,366.4686 190.91883,321.01174 190.91883,321.01174 C 243.44676,281.61579 213.14219,264.4432 213.14219,264.4432"
|
||||||
|
id="path2166"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 80.812204,260.40259 L 207.08127,236.15893 L 209.10158,204.8442"
|
||||||
|
id="path2190" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 214.17264,265.43304 L 206.09142,238.15893"
|
||||||
|
id="path2192" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.33059978px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 244.11207,349.96131 C 421.15514,524.08642 441.78152,385.43125 441.78152,385.43125 L 244.11207,349.96131 z "
|
||||||
|
id="path2194" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.7 KiB |
BIN
archive/gear16.ico
Normal file
BIN
archive/gear16.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 318 B |
BIN
archive/raven.fla
Normal file
BIN
archive/raven.fla
Normal file
Binary file not shown.
37
black.css
Normal file
37
black.css
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<style type="text/css">
|
||||||
|
* {
|
||||||
|
color: #CCC;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background: #222;
|
||||||
|
font-family: monospace;
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
input {
|
||||||
|
width: 80%;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
font-size: 100%;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
textarea{
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
font-size: 100%;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
#err{
|
||||||
|
color:#B22;
|
||||||
|
}
|
||||||
|
#hint {
|
||||||
|
color: #555;
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
#hint a {
|
||||||
|
color: #44B;
|
||||||
|
}
|
||||||
|
#hint a:visited {
|
||||||
|
color: #646;
|
||||||
|
}
|
||||||
|
</style>
|
1
blogdata/.htaccess
Normal file
1
blogdata/.htaccess
Normal file
|
@ -0,0 +1 @@
|
||||||
|
deny from all
|
2
blogdata/200803.txt
Normal file
2
blogdata/200803.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
3_Тест №2_Сегодня я тружусь в поте лица над переписыванием PerlBlog 1.09.<br />Помимо задач,которые поставил я перед собой по переделке всего сайта,у меня теперь есть <a href="http://security.uz/bugtraq/default.asp?id=11343">новые</a><br />Первые шаги к исправлению уже сделаны - эти уязвимости теперь заблокированы.Осталось только сделать это...кошерно,так скажем.Чтобы нелегальный запрос не выносил весь блог в исходные коды какого-то левого сайта,а просто вызывал ошибку.<br />По окончании работ я отошлю мою версию авторам PerlBlog.___03/31/2008-19:25_1_
|
||||||
|
2_28 марта 2008_Здравствуйте!<br />Это - лишь первый пост в этом блоге,и я пишу его больше из тестовых целей,чем из практических.<br />Немного техники.<br />Блог выполнен при помощи движка PerlBlog 1.09.Движок это распространяется по лицензии GNU\GPL,почему я взял на себя смелость адаптировать его под мой сайт,переписав всю "внешнюю" часть и переведя большинство из скриптов (сообщения для администратора я не трогал:у меня нет проблем в английском).Апгрейд дизайна тоже находится в моих планах,но не в данный момент.Говоря честно,в моих планах находится создание целого комплекта дизайнов для моего сайта,на выбор читателя.<br />Также я думаю перенести сюда все мои статьи с <a href="http://oreolek.livejournal.com">LiveJournal</a>...еще много чего я планирую.<br />С уважением,<br />Александр Яковлев___03/28/2008-18:43_2_
|
2
blogdata/200804.txt
Normal file
2
blogdata/200804.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
6_Сайт готов!_Итак,сайт готов.Единственное,что осталось сделать - это счетчик посещений,вещь нужная единственно мне,а не другим.На выход сайта в сеть это не повлияет.В порядке опять же теста опишу разные интересные новшества,которые появились на моем сайте и в движке PerlBlog с моей помощью :-):<br /><br /><ul><br /><li>Вам повезёт!</li><br /><br />Я долго хихикал,когда мне в голову пришла эта идея.<br />Реализовать было ее просто:мой скрипт fortune содержит нужную функцию,я вставил ее без изменений.У нее есть один плюс и один минус.Минус в том,что я думаю,что она будет тормозить,когда общее количество постов в блоге будет большим.Но это наступит только через полгода мимнимум,и то если я буду писать новые статьи ежедневно.Плюс в том,что она никогда не выдаст ___04/01/2008-20:39_0_
|
||||||
|
5_Список некоторых сокращений_Только что я наткнулся на тройку сокращений...в моей голове выстроилась цепочка подобнейших английских аббревиатур.И тут я понял,как это смешно.И решил составить здесь списочек.<br /><br />Итак,начнем с самых распространенных.После дам перевод.<br />What You See Is What You Get - WYSIWYG<br />Keep It Simple, Stupid - KISS<br />Do the simplest thing that could possibly work - DTSTTCPW <br />Represent concepts once and only once - OAOO<br />You aren't going to need it - YAGNI <br /><br />Что Хочешь,То и Получаешь - ЧХТП<br />Храни всё тупым и простым - ХВТП<br />Делай Самые Простые Вещи,которые могут работать - ДСПВКМР<br />Делай концепт лишь однажды - ДКЛО<br />Тебе это не понадобится - ТЭНП<br /><br />Список буду пополнять.IMHO,это будет хорошей идеей.___04/01/2008-13:14_0_
|
0
blogdata/200806.txt
Normal file
0
blogdata/200806.txt
Normal file
6
blogdata/about.txt
Normal file
6
blogdata/about.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<p>Я приветствую Вас на моем сайте.Здесь я выложил свои основные компьютерные разработки.Ссылка на мои литературные изыски находится слева - она перенесет вас на сайт проекта <a href="http://zhurnal.lib.ru">"Самиздат"</a> Максима Мошкова,где я разместил некоторые из своих произведений. </p>
|
||||||
|
<p>Слева (возможно,вы отключили картинки и не можете посмотреть) находится навигационное меню.Если вам интересно,в нем 8 пар картинок.Если вы не хотите его использовать,внизу страницы я его продублировал. </p> <p>Если вам интересно,что я еще сделал...я написал несколько статей для <a href="http://absurdopedia.wikia.com/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Contributions/Oreolek">Абсурдопедии</a>.Их там же можно и посмотреть.Все статьи я не помню,но,например,<acronym title="Центр По Подготовке Боевых Ниндзя">ЦПБН</acronym> - это моя. Я еще про <acronym title="Международный Универсальный Сертификат Отличного Работника">МУСОР</acronym> там не написал. Может,потом как-нибудь статья появится.Абсурдопедия мне в целом нравится,но там встречаются похабные шуточки или матерные.Или пошлые.А всего этого я не делаю сам и не люблю,когда делают другие. </p>
|
||||||
|
<p>Также посмотрите в мой блог - там могут быть интересные статьи.
|
||||||
|
В будущем я планирую поработать над artwork.</p>
|
||||||
|
<br />
|
||||||
|
<img src="Signature.gif" alt="Моя подпись" />
|
4
blogdata/all.txt
Normal file
4
blogdata/all.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
6_Сайт готов!_Итак,сайт готов.Единственное,что осталось сделать - это счетчик посещений,вещь нужная единственно мне,а не другим.На выход сайта в сеть это не повлияет.В порядке опять же теста опишу разные интересные новшества,которые появились на моем сайте и в движке PerlBlog с моей помощью :-):<br /><br /><ul><br /><li>Вам повезёт!</li><br /><br />Я долго хихикал,когда мне в голову пришла эта идея.<br />Реализовать было ее просто:мой скрипт fortune содержит нужную функцию,я вставил ее без изменений.У нее есть один плюс и один минус.Минус в том,что я думаю,что она будет тормозить,когда общее количество постов в блоге будет большим.Но это наступит только через полгода мимнимум,и то если я буду писать новые статьи ежедневно.Плюс в том,что она никогда не выдаст ___04/01/2008-20:39_0_
|
||||||
|
5_Список некоторых сокращений_Только что я наткнулся на тройку сокращений...в моей голове выстроилась цепочка подобнейших английских аббревиатур.И тут я понял,как это смешно.И решил составить здесь списочек.<br /><br />Итак,начнем с самых распространенных.После дам перевод.<br />What You See Is What You Get - WYSIWYG<br />Keep It Simple, Stupid - KISS<br />Do the simplest thing that could possibly work - DTSTTCPW <br />Represent concepts once and only once - OAOO<br />You aren't going to need it - YAGNI <br /><br />Что Хочешь,То и Получаешь - ЧХТП<br />Храни всё тупым и простым - ХВТП<br />Делай Самые Простые Вещи,которые могут работать - ДСПВКМР<br />Делай концепт лишь однажды - ДКЛО<br />Тебе это не понадобится - ТЭНП<br /><br />Список буду пополнять.IMHO,это будет хорошей идеей.___04/01/2008-13:14_0_
|
||||||
|
3_Тест №2_Сегодня я тружусь в поте лица над переписыванием PerlBlog 1.09.<br />Помимо задач,которые поставил я перед собой по переделке всего сайта,у меня теперь есть <a href="http://security.uz/bugtraq/default.asp?id=11343">новые</a><br />Первые шаги к исправлению уже сделаны - эти уязвимости теперь заблокированы.Осталось только сделать это...кошерно,так скажем.Чтобы нелегальный запрос не выносил весь блог в исходные коды какого-то левого сайта,а просто вызывал ошибку.<br />По окончании работ я отошлю мою версию авторам PerlBlog.___03/31/2008-19:25_1_
|
||||||
|
2_28 марта 2008_Здравствуйте!<br />Это - лишь первый пост в этом блоге,и я пишу его больше из тестовых целей,чем из практических.<br />Немного техники.<br />Блог выполнен при помощи движка PerlBlog 1.09.Движок это распространяется по лицензии GNU\GPL,почему я взял на себя смелость адаптировать его под мой сайт,переписав всю "внешнюю" часть и переведя большинство из скриптов (сообщения для администратора я не трогал:у меня нет проблем в английском).Апгрейд дизайна тоже находится в моих планах,но не в данный момент.Говоря честно,в моих планах находится создание целого комплекта дизайнов для моего сайта,на выбор читателя.<br />Также я думаю перенести сюда все мои статьи с <a href="http://oreolek.livejournal.com">LiveJournal</a>...еще много чего я планирую.<br />С уважением,<br />Александр Яковлев___03/28/2008-18:43_2_
|
3
blogdata/clear.js
Normal file
3
blogdata/clear.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<!--
|
||||||
|
edCanvas = document.getElementById('name');
|
||||||
|
//-->
|
BIN
blogdata/comments.gif
Normal file
BIN
blogdata/comments.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 73 B |
5
blogdata/footer.txt
Normal file
5
blogdata/footer.txt
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<h3 align="center"><a href="gostinaya.pl">Âåðíóòüñÿ íà ñàéò</a> <a href="?random">Ñëó÷àéíûé ïîñò</a></h3>
|
||||||
|
<p><em>
|
||||||
|
<a href="mailto:oreolek@gmail.com">Àëåêñàíäð ßêîâëåâ,2008 ãîä </a></em><br />Jabber: oreolek@jabber.ru<br />ICQ: 207-138-403</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
1
blogdata/messages/.htaccess
Normal file
1
blogdata/messages/.htaccess
Normal file
|
@ -0,0 +1 @@
|
||||||
|
deny from all
|
36
blogdata/messages/2.txt
Normal file
36
blogdata/messages/2.txt
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
<threadinfo>
|
||||||
|
<num>2</num>
|
||||||
|
<headerfile>200803</headerfile>
|
||||||
|
<subject>28 марта 2008</subject>
|
||||||
|
</threadinfo>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Здравствуйте!<br />Это - лишь первый пост в этом блоге,и я пишу его больше из тестовых целей,чем из практических.<br />Немного техники.<br />Блог выполнен при помощи движка PerlBlog 1.09.Движок это распространяется по лицензии GNU\GPL,почему я взял на себя смелость адаптировать его под мой сайт,переписав всю "внешнюю" часть,немного оптимизировав внутренности и переведя большинство из скриптов (сообщения для администратора я не трогал:у меня нет проблем в английском).Апгрейд дизайна тоже находится в моих планах,но не в данный момент.Говоря честно,в моих планах находится создание целого комплекта дизайнов для моего сайта,на выбор читателя.<br />Также я думаю перенести сюда все мои статьи с <a href="http://oreolek.livejournal.com">LiveJournal</a>...еще много чего я планирую.<br />С уважением,<br />Александр Яковлев</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<image></image>
|
||||||
|
<date>03/28/2008-18:43</date>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</msg>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Grom PE</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<date>03/30/2008-22:30</date>
|
||||||
|
<body>
|
||||||
|
Ух ты, а комментарии работают?<br />А что так много <code>тегов</code>? Не <b>жирно</b> будет?<br />Зачем столько настроек у <a href="http://google.com">ссылок</a>?<br />Обычный юзер <abbr title="совсем запутается, жалко ведь!">запутается</abbr>.
|
||||||
|
</body>
|
||||||
|
</msg>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Oreolek</name>
|
||||||
|
<email>oreolek AT gmail.com</email>
|
||||||
|
<website></website>
|
||||||
|
<date>03/30/2008-22:36</date>
|
||||||
|
<body>
|
||||||
|
Это я не менял,это уже настройки PerlBlog.<br />Но чувствую,что я уже выпущу щас версию 1.10.Количество изменений огромно.
|
||||||
|
</body>
|
||||||
|
</msg>
|
65
blogdata/messages/3.txt
Normal file
65
blogdata/messages/3.txt
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
<threadinfo>
|
||||||
|
<num>3</num>
|
||||||
|
<headerfile>200803</headerfile>
|
||||||
|
<subject>Тест №2</subject>
|
||||||
|
</threadinfo>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Сегодня я тружусь в поте лица над переписыванием PerlBlog 1.09.<br />Помимо задач,которые поставил я перед собой по переделке всего сайта,у меня теперь есть <a href="http://security.uz/bugtraq/default.asp?id=11343">новые</a>.<br />Первые шаги к исправлению уже сделаны - эти уязвимости теперь заблокированы.Осталось только сделать это...кошерно,так скажем.Чтобы нелегальный запрос не выносил весь блог в исходные коды какого-то левого сайта,а просто вызывал ошибку.<br />По окончании работ я отошлю мою версию авторам PerlBlog.</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<image></image>
|
||||||
|
<date>03/31/2008-19:25</date>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</msg>
|
||||||
|
<msg>
|
||||||
|
<name><h1>ИМЯ МОЕ</h1></name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<date>03/31/2008-22:57</date>
|
||||||
|
<body>
|
||||||
|
></script><br />Это - тест движка на эксплойтность.<br />Я добавил проверку имени и тела коммента.Раньше здесь не было даже проверки на разрешенные теги HTML!Кошмар.<br />Теперь я оставил только их.Впрочем,атрибуты я не отслеживаю.Но onmouseout без > и > не будет работать.
|
||||||
|
</body>
|
||||||
|
</msg>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Grom PE</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<date>06/11/2008-20:32</date>
|
||||||
|
<body>
|
||||||
|
Всё повырезало, зачем тогда предпросмотр?
|
||||||
|
</body>
|
||||||
|
</msg>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Grom PE</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<date>06/11/2008-20:32</date>
|
||||||
|
<body>
|
||||||
|
<code><br />.loop2:<br /> mov eax, ebx<br /> and eax, 1<br /> imul eax, 0FFFFFFh<br /> push eax<br /></code>
|
||||||
|
</body>
|
||||||
|
</msg>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Grom PE</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<date>06/11/2008-20:36</date>
|
||||||
|
<body>
|
||||||
|
А теперь посмотри в код.<br />Не, HTML надо убирать и ставить BB-код вместо него, определенно.<br /><br />ಠ_ಠ
|
||||||
|
</body>
|
||||||
|
</msg>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Grom PE</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<date>06/11/2008-20:42</date>
|
||||||
|
<body>
|
||||||
|
Кстати, куда всё делось кроме этого поста в блоге?
|
||||||
|
</body>
|
||||||
|
</msg>
|
26
blogdata/messages/5.txt
Normal file
26
blogdata/messages/5.txt
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<threadinfo>
|
||||||
|
<num>5</num>
|
||||||
|
<headerfile>200804</headerfile>
|
||||||
|
<subject>Список некоторых сокращений</subject>
|
||||||
|
</threadinfo>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Только что я наткнулся на тройку сокращений...в моей голове выстроилась цепочка подобнейших английских аббревиатур.И тут я понял,как это смешно.И решил составить здесь списочек.<br /><br />Итак,начнем с самых распространенных.После дам перевод.<br />What You See Is What You Get - WYSIWYG<br />Keep It Simple, Stupid - KISS<br />Do the simplest thing that could possibly work - DTSTTCPW <br />Represent concepts once and only once - OAOO<br />You aren't going to need it - YAGNI <br /><br />Что Хочешь,То и Получаешь - ЧХТП<br />Храни всё тупым и простым - ХВТП<br />Делай Самые Простые Вещи,которые могут работать - ДСПВКМР<br />Делай концепт лишь однажды - ДКЛО<br />Тебе это не понадобится - ТЭНП<br /><br />Список буду пополнять.IMHO,это будет хорошей идеей.</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<image></image>
|
||||||
|
<date>04/01/2008-13:14</date>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</msg>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Grom PE</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<date>06/11/2008-20:03</date>
|
||||||
|
<body>
|
||||||
|
Русские сокращения у тебя получились совсем непроизносимые.<br /><br />Кстати, не советую использовать сокращения - они нужны только тем, кто печатает со скоростью 100 знаков в минуту или еще медленней.
|
||||||
|
</body>
|
||||||
|
</msg>
|
26
blogdata/messages/6.txt
Normal file
26
blogdata/messages/6.txt
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<threadinfo>
|
||||||
|
<num>6</num>
|
||||||
|
<headerfile>200804</headerfile>
|
||||||
|
<subject>Сайт готов!</subject>
|
||||||
|
</threadinfo>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Итак,сайт готов.Единственное,что осталось сделать - это счетчик посещений,вещь нужная единственно мне,а не другим.На выход сайта в сеть это не повлияет.В порядке опять же теста опишу разные интересные новшества,которые появились на моем сайте и в движке PerlBlog с моей помощью :-):<br /><br /><ul><br /><li>Вам повезёт!</li><br /><br />Я долго хихикал,когда мне в голову пришла эта идея.<br />Реализовать было ее просто:мой скрипт fortune содержит нужную функцию,я вставил ее без изменений.У нее есть один плюс и один минус.Минус в том,что я думаю,что она будет тормозить,когда общее количество постов в блоге будет большим.Но это наступит только через полгода мимнимум,и то если я буду писать новые статьи ежедневно.Плюс в том,что она никогда не выдаст "битой" ссылки.<br />Когда я рисовал кнопки,мне немного стало стыдно за свою мнительность."Мои программы","Мои сочинения","Мои друзья"...Продолжать это кнопкой "Мне повезёт!" я не захотел,почему и изменил текст.В конце концов,это вы читаете мой блог,а не я его пишу.<br /><br /><li>Улучшенная безопасность</li><br /><br />Как было написано в одном из предыдущих постов,я нашел несколько эксплойтов на security.uz на тему PerlBlog.Просмотрев тщательно исходный код,я понял,что это - не просто уязвимости,а целые бреши в безопасности.Самой крупной было полное отсутствие фильтрации комментариев на запрещенные теги.Любой пользователь мог написать в теле комментария,например,"<script>".Я пресек эту возможность на корню.Также запрещены угловые скобки и кавычки в имени комментатора.Хотите - пользуйтесь <code>< > "</code>.<br />Также были исправлены две другие уязвимости и добавлены некоторые превентивные проверки.<br /><br /><li>"Любой браузер"</li><br /><br />Кнопка anybrowser.org мне не нравилась.Стильная,да,но все же она не вписывалась в дизайн.К тому же,она была написана по-английски.Русские варианты мне там вообще не нравились.Поэтому я сделал свою кнопку.<br />Конечно,она <i>тоже</i> не вписывается в цветовую схему сайта,но хотя бы своя,родная!Хотя,по правде,я просто забыл следить за цветовой схемой и оставил предыдущую.Лого Netscape я стирал вручную,по точкам.Пиксель-арт рулит!<br /><br />P.S. Сайт по-прежнему виден в любом браузере,так как контент и код совершенно не изменен.Блог может выдавать некоторые ошибки в позициях таблиц,но все равно выглядит почти одинаково везде.<br /><br /><li>Новая структура</li><br /><br />Пользуясь случаем,я немного видоизменил структуру сайта.Сделал его более целенаправленным.Раньше здесь было довольно много разделов "убить место",просто для того,чтобы было не так пусто.Сейчас же надобность в них отпала.<br /><br /><li>Новый дизайн</li><br /><br />Предыдущий дизайн был сверстан "левой задней ногой",то есть- на бегу и на коленке (в буквальном значении этого выражения).Сейчас я продумал всё.И,хотя мне до сих пор многое не нравится,так уже намного лучше.В моих планах сделать несколько тестовых дизайн-макетов.Я пока еще не выбрал,как я буду их менять - переключать подключаемые внешние файлы с помощью Perl либо менять стили CSS через Javascript.К стыду своему,я плохо знаю CSS,поэтому выбор труден (CSS стили можно менять и через браузер,а Perl-решение потребует множества внешних файлов).Пока думаю.<br /><br /><li>Куча возможностей</li><br /><br />Например,я могу не только проверять комментарии на наличие тегов,но и заменять в них :-) на рисованные рожицы (правда,прежде всего мне надо их нарисовать).Могу меня дизайн страниц.Могу добавить кучу всяких новых фич,например,форум или голосование...но точно не буду,это здесь незачем.Могу нарисовать себе GUI-программу для постинга эксклюзивно в мой блог (это намного проще,чем можно себе представить - от пары секунд до дня работы).Могу добавить еще админов и постеров,чтобы блог был не только моим (чёрт знает зачем...но переработать надо будет по минимуму).Могу...добавить не только статьи,но и аудио,видео и фото с возможностями комментирования (опять же ничего изменять не придется вообще,только закачать на сайт и дать ссылку\вставить в пост).Как видите,возможности огромны.<br /></ul><br />P.S.Когда я это запостил,я обнаружил хороший баг PerlBlog:ограниченность размера сообщения.Есть над чем работать.</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<image></image>
|
||||||
|
<date>04/01/2008-20:39</date>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</msg>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Grom PE</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<date>06/11/2008-20:12</date>
|
||||||
|
<body>
|
||||||
|
CSS квеста конфликтует с блогом, надо бы поправить.<br /><br />А еще неплохо было бы имя запоминать в куках и подставлять каждый раз.<br /><br />> заменять в них :-) на рисованные рожицы<br />О нет, только не это! Графические смайлы - идиотизм мира сего. Текстовых хватит.
|
||||||
|
</body>
|
||||||
|
</msg>
|
16
blogdata/messages/7.txt
Normal file
16
blogdata/messages/7.txt
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<threadinfo>
|
||||||
|
<num>7</num>
|
||||||
|
<headerfile>200806</headerfile>
|
||||||
|
<subject>Новое воплощение</subject>
|
||||||
|
</threadinfo>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Итак,этот сайт пережил новое воплощение!<br />Новый дизайн,новый движок,новый хост (не без этого).<br />Здесь еще не всё доделано (хотя еще не нашлось того,кто бы добрался до недостроенной части),но то,что есть - оно работает,и меня устраивает,как оно работает.И это КРУТО!!!<br />Сейчас же буду раскручивать :-)<br />P.S. Записи в блог будут появляться не очень часто,потому что часть записок я буду "раскидывать" по сайту. </name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<image></image>
|
||||||
|
<date>06/11/2008-16:39</date>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</msg>
|
17
blogdata/messages/8.txt
Normal file
17
blogdata/messages/8.txt
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<threadinfo>
|
||||||
|
<num>8</num>
|
||||||
|
<headerfile>200806</headerfile>
|
||||||
|
<subject>Первые странности</subject>
|
||||||
|
</threadinfo>
|
||||||
|
|
||||||
|
<msg>
|
||||||
|
<name>Странно,но сегодня я обнаружил,что в блоге недостаёт многих моих сообщений.Куда они пропали,я не знаю.Сайт лежит в сети только 1 день,и даже не индексируется (и не будет) поисковыми системами.Странно в высшей степени.
|
||||||
|
P.S. Продолжается исправление багов и патч сайта по мере продвижения читателей.Пока что полностью "прошёл" весь сайт только один человек.</name>
|
||||||
|
<email></email>
|
||||||
|
<website></website>
|
||||||
|
<image></image>
|
||||||
|
<date>06/12/2008-06:01</date>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</msg>
|
3
blogdata/months.txt
Normal file
3
blogdata/months.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
200806
|
||||||
|
200804
|
||||||
|
200803
|
1
blogdata/num.txt
Normal file
1
blogdata/num.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
7
|
16
blogdata/openwin.js
Normal file
16
blogdata/openwin.js
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
function launchWin(page,name,height,width,trim,resize,scroll) {
|
||||||
|
var leftvalue = ((375) - (width / 2));
|
||||||
|
var topvalue = ((screen.availHeight / 2) - (height / 2));
|
||||||
|
if (trim) {
|
||||||
|
OpenWin = this.open(page, name, "top=" + topvalue + ", left=" + leftvalue + ",toolbar=yes,menubar=yes,location=yes,scrollbars=" + scroll + ",resizable=" + resize + ",height=" + height + ",width=" + width);
|
||||||
|
} else {
|
||||||
|
OpenWin = this.open(page, name, "top=" + topvalue + ", left=" + leftvalue + ",toolbar=no,menubar=no,location=no,scrollbars=" + scroll + ",resizable=" + resize + ",height=" + height + ",width=" + width);
|
||||||
|
}
|
||||||
|
OpenWin.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
// suppress any js errors
|
||||||
|
function stoperror(){
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
window.onerror=stoperror
|
372
blogdata/quicktags.js
Normal file
372
blogdata/quicktags.js
Normal file
|
@ -0,0 +1,372 @@
|
||||||
|
// new edit toolbar used with permission
|
||||||
|
// by Alex King
|
||||||
|
// http://www.alexking.org/
|
||||||
|
|
||||||
|
var edButtons = new Array();
|
||||||
|
var edLinks = new Array();
|
||||||
|
var edOpenTags = new Array();
|
||||||
|
|
||||||
|
function edButton(id, display, tagStart, tagEnd, access, open) {
|
||||||
|
this.id = id; // used to name the toolbar button
|
||||||
|
this.display = display; // label on button
|
||||||
|
this.tagStart = tagStart; // open tag
|
||||||
|
this.tagEnd = tagEnd; // close tag
|
||||||
|
this.access = access; // access key
|
||||||
|
this.open = open; // set to -1 if tag does not need to be closed
|
||||||
|
}
|
||||||
|
|
||||||
|
function zeroise(number, threshold) {
|
||||||
|
// FIXME: or we could use an implementation of printf in js here
|
||||||
|
var str = number.toString();
|
||||||
|
if (number < 0) { str = str.substr(1, str.length) }
|
||||||
|
while (str.length < threshold) { str = "0" + str }
|
||||||
|
if (number < 0) { str = '-' + str }
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
var now = new Date();
|
||||||
|
var datetime = now.getFullYear() + '-' +
|
||||||
|
zeroise(now.getMonth() + 1, 2) + '-' +
|
||||||
|
zeroise(now.getDate(), 2) + 'T' +
|
||||||
|
zeroise(now.getHours(), 2) + ':' +
|
||||||
|
zeroise(now.getMinutes(), 2) + ':' +
|
||||||
|
zeroise(now.getSeconds() ,2) +
|
||||||
|
// FIXME: we could try handling timezones like +05:30 and the like
|
||||||
|
zeroise((now.getTimezoneOffset()/60), 2) + ':' + '00';
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_strong'
|
||||||
|
,'str'
|
||||||
|
,'<strong>'
|
||||||
|
,'</strong>'
|
||||||
|
,'b'
|
||||||
|
);
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_em'
|
||||||
|
,'em'
|
||||||
|
,'<em>'
|
||||||
|
,'</em>'
|
||||||
|
,'i'
|
||||||
|
);
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_link'
|
||||||
|
,'link'
|
||||||
|
,''
|
||||||
|
,'</a>'
|
||||||
|
,'a'
|
||||||
|
); // special case
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_block'
|
||||||
|
,'b-quote'
|
||||||
|
,'<blockquote>'
|
||||||
|
,'</blockquote>'
|
||||||
|
,'q'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_del'
|
||||||
|
,'del'
|
||||||
|
,'<del datetime="' + datetime + '">'
|
||||||
|
,'</del>'
|
||||||
|
,'d'
|
||||||
|
);
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_ins'
|
||||||
|
,'ins'
|
||||||
|
,'<ins datetime="' + datetime + '">'
|
||||||
|
,'</ins>'
|
||||||
|
,'s'
|
||||||
|
);
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_img'
|
||||||
|
,'img'
|
||||||
|
,''
|
||||||
|
,''
|
||||||
|
,'m'
|
||||||
|
,-1
|
||||||
|
); // special case
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_ul'
|
||||||
|
,'ul'
|
||||||
|
,'<ul>\n'
|
||||||
|
,'</ul>\n\n'
|
||||||
|
,'u'
|
||||||
|
);
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_ol'
|
||||||
|
,'ol'
|
||||||
|
,'<ol>\n'
|
||||||
|
,'</ol>\n\n'
|
||||||
|
,'o'
|
||||||
|
);
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_li'
|
||||||
|
,'li'
|
||||||
|
,'\t<li>'
|
||||||
|
,'</li>\n'
|
||||||
|
,'l'
|
||||||
|
);
|
||||||
|
|
||||||
|
edButtons[edButtons.length] =
|
||||||
|
new edButton('ed_pre'
|
||||||
|
,'code'
|
||||||
|
,'<code>'
|
||||||
|
,'</code>'
|
||||||
|
,'c'
|
||||||
|
);
|
||||||
|
|
||||||
|
function edLink() {
|
||||||
|
this.display = '';
|
||||||
|
this.URL = '';
|
||||||
|
this.newWin = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
edLinks[edLinks.length] = new edLink('WordPress'
|
||||||
|
,'http://wordpress.org/'
|
||||||
|
);
|
||||||
|
|
||||||
|
edLinks[edLinks.length] = new edLink('alexking.org'
|
||||||
|
,'http://www.alexking.org/'
|
||||||
|
);
|
||||||
|
|
||||||
|
function edShowButton(button, i) {
|
||||||
|
if (button.id == 'ed_img') {
|
||||||
|
document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertImage(edCanvas);" value="' + button.display + '" />');
|
||||||
|
}
|
||||||
|
else if (button.id == 'ed_link') {
|
||||||
|
document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertLink(edCanvas, ' + i + ');" value="' + button.display + '" />');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertTag(edCanvas, ' + i + ');" value="' + button.display + '" />');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edShowLinks() {
|
||||||
|
var tempStr = '<select onchange="edQuickLink(this.options[this.selectedIndex].value, this);"><option value="-1" selected>(Quick Links)</option>';
|
||||||
|
for (i = 0; i < edLinks.length; i++) {
|
||||||
|
tempStr += '<option value="' + i + '">' + edLinks[i].display + '</option>';
|
||||||
|
}
|
||||||
|
tempStr += '</select>';
|
||||||
|
document.write(tempStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
function edAddTag(button) {
|
||||||
|
if (edButtons[button].tagEnd != '') {
|
||||||
|
edOpenTags[edOpenTags.length] = button;
|
||||||
|
document.getElementById(edButtons[button].id).value = '/' + document.getElementById(edButtons[button].id).value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edRemoveTag(button) {
|
||||||
|
for (i = 0; i < edOpenTags.length; i++) {
|
||||||
|
if (edOpenTags[i] == button) {
|
||||||
|
edOpenTags.splice(i, 1);
|
||||||
|
document.getElementById(edButtons[button].id).value = document.getElementById(edButtons[button].id).value.replace('/', '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edCheckOpenTags(button) {
|
||||||
|
var tag = 0;
|
||||||
|
for (i = 0; i < edOpenTags.length; i++) {
|
||||||
|
if (edOpenTags[i] == button) {
|
||||||
|
tag++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tag > 0) {
|
||||||
|
return true; // tag found
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false; // tag not found
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edCloseAllTags() {
|
||||||
|
var count = edOpenTags.length;
|
||||||
|
for (o = 0; o < count; o++) {
|
||||||
|
edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edQuickLink(i, thisSelect) {
|
||||||
|
if (i > -1) {
|
||||||
|
var newWin = '';
|
||||||
|
if (edLinks[i].newWin == 1) {
|
||||||
|
newWin = ' target="_blank"';
|
||||||
|
}
|
||||||
|
var tempStr = '<a href="' + edLinks[i].URL + '"' + newWin + '>'
|
||||||
|
+ edLinks[i].display
|
||||||
|
+ '</a>';
|
||||||
|
thisSelect.selectedIndex = 0;
|
||||||
|
edInsertContent(edCanvas, tempStr);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
thisSelect.selectedIndex = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edSpell(myField) {
|
||||||
|
var word = '';
|
||||||
|
if (document.selection) {
|
||||||
|
myField.focus();
|
||||||
|
var sel = document.selection.createRange();
|
||||||
|
if (sel.text.length > 0) {
|
||||||
|
word = sel.text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (myField.selectionStart || myField.selectionStart == '0') {
|
||||||
|
var startPos = myField.selectionStart;
|
||||||
|
var endPos = myField.selectionEnd;
|
||||||
|
if (startPos != endPos) {
|
||||||
|
word = myField.value.substring(startPos, endPos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (word == '') {
|
||||||
|
word = prompt('Enter a word to look up:', '');
|
||||||
|
}
|
||||||
|
if (word != '') {
|
||||||
|
window.open('http://dictionary.reference.com/search?q=' + escape(word));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edToolbar() {
|
||||||
|
document.write('<div id="ed_toolbar">');
|
||||||
|
for (i = 0; i < edButtons.length; i++) {
|
||||||
|
edShowButton(edButtons[i], i);
|
||||||
|
}
|
||||||
|
document.write('<input type="button" id="ed_spell" class="ed_button" onclick="edSpell(edCanvas);" title="Dictionary lookup" value="Dict." />');
|
||||||
|
document.write('<input type="button" id="ed_close" class="ed_button" onclick="edCloseAllTags();" title="Close all open tags" value="Close Tags" />');
|
||||||
|
// edShowLinks(); // disabled by default
|
||||||
|
document.write('</div>');
|
||||||
|
}
|
||||||
|
|
||||||
|
// insertion code
|
||||||
|
|
||||||
|
function edInsertTag(myField, i) {
|
||||||
|
//IE support
|
||||||
|
if (document.selection) {
|
||||||
|
myField.focus();
|
||||||
|
sel = document.selection.createRange();
|
||||||
|
if (sel.text.length > 0) {
|
||||||
|
sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
|
||||||
|
sel.text = edButtons[i].tagStart;
|
||||||
|
edAddTag(i);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sel.text = edButtons[i].tagEnd;
|
||||||
|
edRemoveTag(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
myField.focus();
|
||||||
|
}
|
||||||
|
//MOZILLA/NETSCAPE support
|
||||||
|
else if (myField.selectionStart || myField.selectionStart == '0') {
|
||||||
|
var startPos = myField.selectionStart;
|
||||||
|
var endPos = myField.selectionEnd;
|
||||||
|
var cursorPos = endPos;
|
||||||
|
var scrollTop = myField.scrollTop;
|
||||||
|
|
||||||
|
if (startPos != endPos) {
|
||||||
|
myField.value = myField.value.substring(0, startPos)
|
||||||
|
+ edButtons[i].tagStart
|
||||||
|
+ myField.value.substring(startPos, endPos)
|
||||||
|
+ edButtons[i].tagEnd
|
||||||
|
+ myField.value.substring(endPos, myField.value.length);
|
||||||
|
cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
|
||||||
|
myField.value = myField.value.substring(0, startPos)
|
||||||
|
+ edButtons[i].tagStart
|
||||||
|
+ myField.value.substring(endPos, myField.value.length);
|
||||||
|
edAddTag(i);
|
||||||
|
cursorPos = startPos + edButtons[i].tagStart.length;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
myField.value = myField.value.substring(0, startPos)
|
||||||
|
+ edButtons[i].tagEnd
|
||||||
|
+ myField.value.substring(endPos, myField.value.length);
|
||||||
|
edRemoveTag(i);
|
||||||
|
cursorPos = startPos + edButtons[i].tagEnd.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
myField.focus();
|
||||||
|
myField.selectionStart = cursorPos;
|
||||||
|
myField.selectionEnd = cursorPos;
|
||||||
|
myField.scrollTop = scrollTop;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {
|
||||||
|
myField.value += edButtons[i].tagStart;
|
||||||
|
edAddTag(i);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
myField.value += edButtons[i].tagEnd;
|
||||||
|
edRemoveTag(i);
|
||||||
|
}
|
||||||
|
myField.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edInsertContent(myField, myValue) {
|
||||||
|
//IE support
|
||||||
|
if (document.selection) {
|
||||||
|
myField.focus();
|
||||||
|
sel = document.selection.createRange();
|
||||||
|
sel.text = myValue;
|
||||||
|
myField.focus();
|
||||||
|
}
|
||||||
|
//MOZILLA/NETSCAPE support
|
||||||
|
else if (myField.selectionStart || myField.selectionStart == '0') {
|
||||||
|
var startPos = myField.selectionStart;
|
||||||
|
var endPos = myField.selectionEnd;
|
||||||
|
myField.value = myField.value.substring(0, startPos)
|
||||||
|
+ myValue
|
||||||
|
+ myField.value.substring(endPos, myField.value.length);
|
||||||
|
myField.focus();
|
||||||
|
myField.selectionStart = startPos + myValue.length;
|
||||||
|
myField.selectionEnd = startPos + myValue.length;
|
||||||
|
} else {
|
||||||
|
myField.value += myValue;
|
||||||
|
myField.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edInsertLink(myField, i, defaultValue) {
|
||||||
|
if (!defaultValue) {
|
||||||
|
defaultValue = 'http://';
|
||||||
|
}
|
||||||
|
if (!edCheckOpenTags(i)) {
|
||||||
|
var URL = prompt('Enter the URL' ,defaultValue);
|
||||||
|
if (URL) {
|
||||||
|
edButtons[i].tagStart = '<a href="' + URL + '">';
|
||||||
|
edInsertTag(myField, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
edInsertTag(myField, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edInsertImage(myField) {
|
||||||
|
var myValue = prompt('Enter the URL of the image', 'http://');
|
||||||
|
if (myValue) {
|
||||||
|
myValue = '<img src="'
|
||||||
|
+ myValue
|
||||||
|
+ '" alt="' + prompt('Enter a description of the image', '')
|
||||||
|
+ '" />';
|
||||||
|
edInsertContent(myField, myValue);
|
||||||
|
}
|
||||||
|
}
|
54
cave.pl
Normal file
54
cave.pl
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
use locale;
|
||||||
|
require 'common.pl';
|
||||||
|
use CGI qw/:standard/;
|
||||||
|
#use CGI::Carp 'fatalsToBrowser';
|
||||||
|
my $debug_out="debug/debug_cave.txt";
|
||||||
|
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||||
|
@pairs = split(/&/, $buffer);
|
||||||
|
foreach $pair (@pairs) {
|
||||||
|
local($name, $value) = split(/=/, $pair);
|
||||||
|
$value =~ tr/+/ /;
|
||||||
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
|
||||||
|
$value =~ s/<!--(.|\n)*-->//g;
|
||||||
|
$in{$name} = $value;
|
||||||
|
}
|
||||||
|
my @cookieArray=split ("; ",$ENV{'HTTP_COOKIE'});
|
||||||
|
my $cookieName;my $cookieValue;
|
||||||
|
foreach (@cookieArray){
|
||||||
|
($cookieName,$cookieValue)=split("=",$_);
|
||||||
|
$cookieHash{$cookieName}=$cookieValue;
|
||||||
|
}
|
||||||
|
if ($ENV{'QUERY_STRING'} ne '') {
|
||||||
|
@qstr = split (/=/,$ENV{'QUERY_STRING'});
|
||||||
|
$command = $qstr[0];
|
||||||
|
$value = $qstr[1];
|
||||||
|
$value =~ s/[\x00-\x20<>\|;\(\)\$^\+!\^\[\]\?\"\'\`]//g;
|
||||||
|
|
||||||
|
if ($command eq "error"){$error=1;&displayDefault;}
|
||||||
|
else {&displayDefault;}
|
||||||
|
}
|
||||||
|
else{&displayDefault;}
|
||||||
|
sub displayDefault(){
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
print <<"EOF";
|
||||||
|
<html>\n
|
||||||
|
<head><script language="javascript">
|
||||||
|
window.onload=function() {document.getElementById("in").focus();};
|
||||||
|
</script>\n<title>Ïåùåðà</title>\n
|
||||||
|
EOF
|
||||||
|
if ($cookieHash{'light'}){print '<link type="text/css" rel="stylesheet" href="white.css">';}
|
||||||
|
else {print '<link type="text/css" rel="stylesheet" href="black.css">';}
|
||||||
|
print <<"EOF";
|
||||||
|
</head><body>
|
||||||
|
Êàê òîëüêî âû òÿíåòå íà ñåáÿ êíèãó,øêàô îòúåçæàåò â ñòîðîíó,îòêðûâàÿ çà ñîáîé ëåñòíèöó,âåäóùóþ âíèç.
|
||||||
|
Âû ñïóñêàåòåñü ïî ëåñòíèöå â ïåùåðó.Ýòà êîìíàòà áóêâàëüíî âûäîëáëåíà â ñêàëå.Ïåðåä âàìè ñòîèò ïèñüìåííûé ñòîë,íà
|
||||||
|
í¸ì ëåæèò çàïèñêà.Âûñîêî íà äàëüíåé ñòåíå ïðîðóáëåíî îêíî.Îíî äîñòàòî÷íî øèðîêî,÷òîáû îñâåùàòü êîìíàòó.
|
||||||
|
Íà "ïîäîêîííèêå" ñèäèò âîðîí.
|
||||||
|
EOF
|
||||||
|
if ($error){print "<p id=\"err\">Êîìàíäà íå ðàñïîçíàíà.</p>";$error=0;}
|
||||||
|
print "<FORM NAME='input' ACTION='parse.pl' METHOD='POST'>\n";
|
||||||
|
print "<input type='hidden' name='location' id='location' value='cave'>";
|
||||||
|
print "> <input type=text id='in' name='input' size=54 maxlength=65>\n";
|
||||||
|
print "</body>\n</html>";
|
||||||
|
}
|
39
changelog.html
Normal file
39
changelog.html
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
||||||
|
<title>Changelog</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 align="center">Дневник изменений</h1>
|
||||||
|
<p> <b>1.0</b> Первый (начальный) релиз</p>
|
||||||
|
<p><b> 1.1-1.2</b> Исправление багов,добавление команд</p>
|
||||||
|
<p><b> 1.3</b> Преобразование регистра</p>
|
||||||
|
<p><b> 1.4</b> Исправление багов,добавление команд</p>
|
||||||
|
<p><b> 1.5</b> Выделение парсера в отдельный модуль,организация команд (до этого релиза
|
||||||
|
каждая локация имела собственный набор команд,что давало интересные отзывы),
|
||||||
|
добавление новых(пение,трогание,осматривание и прочее),ужесточение проверки команд.
|
||||||
|
В ходе тестирования было найдено множество сложных багов в проверке команд (все
|
||||||
|
правильные команды,содержащие более одного слова, не распознавались,что делало
|
||||||
|
прохождение невозможным),релиз откатан до версии 1.4 до исправления.</p>
|
||||||
|
<p><b> 1.50.01</b> Изменена нумерация версий.Теперь она ведётся в
|
||||||
|
формате хх.хх.хх,где вторая хх означает добавление новых функций,третья
|
||||||
|
- исправление старых багов,первая означает изменение самого
|
||||||
|
наполнения(выход апгрейда).</p>
|
||||||
|
<p><b> 1.50.02</b> Структурировал код,заменил шапку в некоторых страницах.</p>
|
||||||
|
<p><b> 1.50.03</b> Исправлена команда "петь".Отформатированы песни.</p>
|
||||||
|
<p> <b>1.50.04</b> При попытке исправить сломавшийся парсер обнаружено,что парсер работает исправно.Cнова сделан релиз,надеюсь вам понравится. </p>
|
||||||
|
<!--<p><b>1.50.05</b> Не понравилось.По просьбам читателей вновь сделан rollback.Оно всё-таки не работает.Странно,поутру вроде каначило...Буду ответственнее делать тестинг...да,и в следующий раз - не в 5 утра и не после релиза.О,и хотя бы дважды.</p> - ложная тревога-->
|
||||||
|
<p><b>1.50.05</b> Ошибка обнаружена и исправлена.Парсинг действительно
|
||||||
|
был сломан,но это проявлялось редко и только на отдельных страницах.И
|
||||||
|
дело было не в самом парсере,кстати.</p>
|
||||||
|
<p><b>1.50.06</b> Исправлены ошибки в работе некоторых команд (в частности,то же пение),приводившие к тому,что возникал "БОЛЬШОЙ ГЛЮК!".</p>
|
||||||
|
<p><b>1.50.07</b> Исправлено распознавание одной из секретных команд во второй локации.</p>
|
||||||
|
<p><b>1.50.08</b> Исправлен хороший
|
||||||
|
глюк,мешавший распознаванию любых команд,содержащих пробел.Если интересно,то все регулярные выражения /глагол \w+/ заменены на
|
||||||
|
/глагол\s/</p>
|
||||||
|
<p><b>1.50.09</b> Исправлена пара возможных багов,подчищен код.</p>
|
||||||
|
<p><b>1.50.10</b> Теперь changelog открыт для просмотра.</p>
|
||||||
|
<p><b>1.50.11</b> Увеличена длина текстового поля в Гостиной.</p>
|
||||||
|
<p><b>1.50.12</b> Немного изменены хранящиеся cookies.Надеюсь,хоть сейчас они будут реально сохраняться.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
44
common.pl
Normal file
44
common.pl
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
my $charset="windows-1251";
|
||||||
|
$version="1.50.12";
|
||||||
|
$debug=1;
|
||||||
|
|
||||||
|
sub showwarning(){
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
print "<html><meta http-equiv=\"Content-Type\" content='text/html; charset=$charset'>";
|
||||||
|
print "<script language=\"javascript\">";
|
||||||
|
print "window.onload=function() {document.getElementById(\"in\").focus();};";
|
||||||
|
print "</script>";
|
||||||
|
if ($cookieHash{'light'}){print '<link type="text/css" rel="stylesheet" href="white.css">';}
|
||||||
|
else {print '<link type="text/css" rel="stylesheet" href="black.css">';}
|
||||||
|
print "<body>";
|
||||||
|
print @_;
|
||||||
|
print "<div id=\"hint\"><noscript>Ïîñòàâüòå êóðñîð â ïîëå âíèçó è </noscript>íàæìèòå Enter.</div><br>";
|
||||||
|
|
||||||
|
print "<FORM NAME='input' ACTION='$location.pl' METHOD='GET'>\n";
|
||||||
|
print "> <input type=text id=\"in\" size=64 maxlength=32>\n</form>";
|
||||||
|
print "<br><a href='$to'>Âåðíóòüñÿ îáðàòíî</a>";
|
||||||
|
print "</body></html>";
|
||||||
|
}
|
||||||
|
|
||||||
|
sub printHeader{#common header - CSS style and so on
|
||||||
|
my($title) = shift;
|
||||||
|
my($white) = shift;
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
print "<html><meta http-equiv=\"Content-Type\" content='text/html; charset=$charset'><head>";
|
||||||
|
if ($white){print '<link type="text/css" rel="stylesheet" href="white.css">';}
|
||||||
|
else{
|
||||||
|
if ($cookieHash{'light'}){print '<link type="text/css" rel="stylesheet" href="white.css">';}
|
||||||
|
else {print '<link type="text/css" rel="stylesheet" href="black.css">';}
|
||||||
|
}
|
||||||
|
print"\n<title>$title</title>\n</head>\n<body>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
sub printFooter{#common footer - enclosures
|
||||||
|
print <<"END";
|
||||||
|
<h3 align="center"><a href="gostinaya.pl">Âûéòè èç áëîãà</a> <a href="?random">Ñëó÷àéíûé ïîñò</a></h3>
|
||||||
|
<p><em>
|
||||||
|
<a href="mailto:oreolek\@gmail.com">Àëåêñàíäð ßêîâëåâ,2008 ãîä </a></em><br />Jabber: oreolek\@jabber.ru<br />ICQ: 207-138-403</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
END
|
||||||
|
}
|
253
config.pl
Normal file
253
config.pl
Normal file
|
@ -0,0 +1,253 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
### Best with Perl 5.6 or better
|
||||||
|
# Path to Perl - you may need to check your server admin just in case
|
||||||
|
# it is different.
|
||||||
|
##########################################################################
|
||||||
|
# Forum2 Development Overview
|
||||||
|
# DForum 1.01 (11/02/1999)
|
||||||
|
# http://www.dansteinman.com/dforum
|
||||||
|
# Copyright (C) 1998 Dan Steinman
|
||||||
|
#
|
||||||
|
# This version by Ted Hawkins, Forum2.6, January 2003
|
||||||
|
# http://scriptles.bluwall.com
|
||||||
|
# Including
|
||||||
|
# 1) Footer script by Michael Mathews, August 2002
|
||||||
|
# http://perlcircus.com
|
||||||
|
#
|
||||||
|
# 2) Latest reply to a subject posting
|
||||||
|
# by Jeff Thomas, December 2002
|
||||||
|
# http://www.jhthomas.net
|
||||||
|
# Jeff redid the Original Dforum1 this way at www.roigi.com
|
||||||
|
# and it has been written into Forum2 as of Version 2.5
|
||||||
|
#
|
||||||
|
# 3) PerlBlog v1.08b by Rio Akasaka, May 2003-May 2005
|
||||||
|
# Altered Forum2.6 into a customizable and flexible
|
||||||
|
# weblog.
|
||||||
|
#
|
||||||
|
# http://www.chronicled.org/perlblog
|
||||||
|
#
|
||||||
|
# This program 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
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program 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 (license.txt) for more details.
|
||||||
|
#
|
||||||
|
##########################################################################
|
||||||
|
# filename: weblog-config.pl
|
||||||
|
# Set-Up Variables
|
||||||
|
# The document-root environment
|
||||||
|
$root = "$ENV{'DOCUMENT_ROOT'}";
|
||||||
|
# This is the default
|
||||||
|
# $forumdir = "$root/your-path-goes-here"
|
||||||
|
# The below should work on most servers - check with your Sys Admin to be sure.
|
||||||
|
$forumdir = "blogdata";
|
||||||
|
$contentdir = "content";#the path to the txt-content of pages
|
||||||
|
#################################### EASY CUSTOMIZE ############################
|
||||||
|
# Customizing your weblog.
|
||||||
|
# You can change the defaults to reflect your site's design and style.
|
||||||
|
# If you put quotation marks within the quotation marks, be sure to a \ sign before each.
|
||||||
|
#################################### Administration ############################
|
||||||
|
$username = "oreolek"; # Weblog username
|
||||||
|
$password = "verylongpasswordindeed"; # Weblog password
|
||||||
|
$adminusername = "administrator"; # Weblog-admin.pl username
|
||||||
|
$adminpassword = "this_password_has_underscores"; # Weblog-admin.pl password
|
||||||
|
$code = "write_post"; # Weblog journal page
|
||||||
|
$ssource="./blogdata"; # Source to your images and JavaScript (omit final slash)
|
||||||
|
$show="5"; # Number of posts to show
|
||||||
|
$recent="yes"; # Show recent posts or not
|
||||||
|
$recentnum="10"; # Number of recent posts to show
|
||||||
|
$lang="ru"; # Language of weblog
|
||||||
|
$charset="windows-1251"; # Character set (utf-8 is standard)
|
||||||
|
$inputwc="email"; # Show website or email on comment box input
|
||||||
|
|
||||||
|
#################################### Titles and names ############################
|
||||||
|
$blogtitle = "Ñàéò Àëåêñàíäðà ßêîâëåâà aka Oreolek"; # Weblog title
|
||||||
|
$posted = "Îòïðàâëåíî â "; # Post title at end of each entry
|
||||||
|
$description = "Âåáëîã íàïèñàí íà Perl/CGI"; # Blog description (used for search engines)
|
||||||
|
$keywords = "PerlBlog, v.1.09"; # Blog keywords (used for search engines)
|
||||||
|
$subtitle = "Based on the PerlBlog v.1.09"; # Blog subtitle
|
||||||
|
$author = "Oreolek"; # Blog author (used for search engines)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#################################### Images ############################
|
||||||
|
$bgimg="../background.gif"; # Blog background image (optional)
|
||||||
|
$headerimg =""; # Header image (optional, include http)
|
||||||
|
$footerimg=""; # Footer image (optional, include http)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#################################### Main details ############################
|
||||||
|
$maincolor ="#ffffff"; # Main weblog entry background color
|
||||||
|
$bgcolor="#144A64"; # Main weblog background color
|
||||||
|
$width ="782"; #Blog Width
|
||||||
|
$jwidth="480px"; # Blog Entry (left column) width
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#################################### Header ############################
|
||||||
|
$height="15px"; #Header Section Height
|
||||||
|
$paddingtp ="20px"; # Header padding top (how far the title is from the top)
|
||||||
|
$bgtopcolor ="#FFFFFF"; # Header background color
|
||||||
|
$paddinglft ="35px"; # Header padding left (how far the title is from the left, keep congruous to paddingr)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#################################### Title ############################
|
||||||
|
$headertitlefont="Georgia"; # Title (in header area) font
|
||||||
|
$titlesize="130%"; # Title (in header area) font size
|
||||||
|
$headertitlecolor="#FFFFFF"; # Title (in header area) font color
|
||||||
|
$headertitlewg="bold"; # Title (in header area) font weight
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#################################### Subtitle ############################
|
||||||
|
$sheight="10px"; #Subtitle Section Height
|
||||||
|
$subtitlepaddingtop="2px"; # Subtitle distance from title
|
||||||
|
$subttfont="Trebuchet MS"; # Subtitle font
|
||||||
|
$subtitlesize="80%"; # Subtitle font size: the greater the value, the bigger
|
||||||
|
$subttcolor="#dddddd"; # Subtitle font color
|
||||||
|
$subttdeco="none"; # Subtitle font decoration: underline or none
|
||||||
|
$subtitlewg="none"; # Subtitle font weight: bold or none
|
||||||
|
|
||||||
|
$subtthfont="Arial"; # Subtitle hover (mouseover) font
|
||||||
|
$subtthcolor="#dddddd"; # Subtitle hover (mouseover) font color
|
||||||
|
$subtitlehsize="80%"; # Subtitle hover (mouseover) font size
|
||||||
|
$subtthdeco="none"; # Subtitle hover (mouseover) font decoration: underline or none
|
||||||
|
$subtitlehpwg="none"; # Subtitle hover font weight: bold or none
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
######################### Links, below the subtitle (main, archive, about) ###############
|
||||||
|
$hheight="150px"; #Header link Section Height
|
||||||
|
$headerpaddingtop="30px"; # Header link distance from subtitle
|
||||||
|
$subttfontl="Trebuchet MS"; # Header link font
|
||||||
|
$subtitlesizel="80%"; # Header link font size: the greater the value, the bigger
|
||||||
|
$subttcolorl="#dddddd"; # Header link font color
|
||||||
|
$subttdecol="none"; # Header link font decoration: underline or none
|
||||||
|
$subtitlewgl="none"; # Header link font weight: bold or none
|
||||||
|
|
||||||
|
$subtthfontl="Arial"; # Header link hover (mouseover) font
|
||||||
|
$subtthcolorl="#dddddd"; # Header link hover (mouseover) font color
|
||||||
|
$subtitlehsizel="80%"; # Header link hover (mouseover) font size
|
||||||
|
$subtthdecol="underline"; # Header link hover (mouseover) font decoration: underline or none
|
||||||
|
$subtitlehpwgl="none"; # Header link hover font weight: bold or none
|
||||||
|
|
||||||
|
$brackets="#dddddd"; # Header links brackets color
|
||||||
|
|
||||||
|
######################### Journal/Post details ###############
|
||||||
|
$titlefont="Georgia"; # Journal post title font
|
||||||
|
$titlecolor="#4F4E46"; # Journal post title font color
|
||||||
|
$tentrysize="130%"; # Journal post title font size
|
||||||
|
|
||||||
|
$bodyfont="Verdana"; # Journal post entry font
|
||||||
|
$bodycolor="#4F4E46"; # Journal post entry font color
|
||||||
|
$bodyesize="11px"; # Journal post entry font size
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
######################### Journal Tag details (what comes after the post) ###############
|
||||||
|
$tagfont="Verdana"; # Entry tag font
|
||||||
|
$tagfontsize="11px"; # Entry tag font size
|
||||||
|
$tagcolor="#4b4b4b"; # Entry tag font color
|
||||||
|
$tagweight="none"; # Entry tag font weight (bold or none)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
######################### Sidebar ###############
|
||||||
|
$swidth="176px"; # Sidebar Column (right column) width
|
||||||
|
$direction="left"; # Sidebar left or right?
|
||||||
|
$paddingr="0px"; # If sidebar is on the left, make value to 0px
|
||||||
|
$paddingl="35px"; # If sidebar is on the left, make value to 35px
|
||||||
|
|
||||||
|
$sectionfont="Trebuchet MS"; # Sidebar Column font
|
||||||
|
$sectionsize="100%"; # Sidebar Column font size
|
||||||
|
$sectionclr="#666666"; # Sidebar Column color
|
||||||
|
$sidebarcolor="#ffffff"; # Sidebar Column background color
|
||||||
|
|
||||||
|
$sectiontfont="Trebuchet MS"; # Sidebar titles font
|
||||||
|
$sectionfsize="11px"; # Sidebar titles font size
|
||||||
|
$sidefcolor="#4F4E46"; # Sidebar titles font color
|
||||||
|
$sidefweight="bold"; # Sidebar titles font weight (bold or none)
|
||||||
|
|
||||||
|
$sectionlfont="Trebuchet MS"; # Sidebar link font
|
||||||
|
$sectionls="11px"; # Sidebar link font size
|
||||||
|
$sectionlc="#aaaaaa"; # Sidebar link font color
|
||||||
|
$sidefweight="bold"; # Sidebar link font weight (bold or none)
|
||||||
|
$sectiondecol="none"; # Sidebar link text-decoration (underline or none)
|
||||||
|
|
||||||
|
$sectionlfonth="Trebuchet MS"; # Sidebar link hover font
|
||||||
|
$sectionlsh="11px"; # Sidebar link hover font size
|
||||||
|
$sectionlch="#88a4bf"; # Sidebar link hover font color
|
||||||
|
$sidefweighth="bold"; # Sidebar link hover font weight (bold or none)
|
||||||
|
$sectiondecolh="none"; # Sidebar link hover text-decoration (underline or none)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
######################### General link details ###############
|
||||||
|
$linkcolor="#aaaaaa"; # Link color
|
||||||
|
$linkdeco="none"; # Link decoration: underline or none
|
||||||
|
$linkweight="none"; # Link weight: bold or none
|
||||||
|
$fontsz="70%"; # Link size
|
||||||
|
|
||||||
|
$hover="#88a4bf"; # Link hover (mouseover) color
|
||||||
|
$txtdecohover="none"; # Link hover (mouseover) decoration: underline or none
|
||||||
|
$fntweight="none"; # Link hover (mouseover) font-weight: bold or none
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
######################### Image details ###############
|
||||||
|
$imgborder="#ddd"; # Image border
|
||||||
|
$imgback="#eee"; # Image background color
|
||||||
|
$imgpadding="4px"; # Image padding
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
######################### Input/Comment box form details ###############
|
||||||
|
$inputborder="#4b4b4b"; # Input form border color
|
||||||
|
$inputfont="Georgia"; # Input form font
|
||||||
|
$inputfsize="11px"; # Input form font size
|
||||||
|
$inputcolor="#333333"; # Input form font color
|
||||||
|
$inputbg="#ffffff"; # Input form background color
|
||||||
|
|
||||||
|
$submitbg="#ffffff"; # Submit button background color
|
||||||
|
$submitborder="#333333"; # Submit button border color
|
||||||
|
$submitfontcolor="#4b4b4b"; # Submit button font color
|
||||||
|
$submitfontsize="12px"; # Submit button font size
|
||||||
|
$submitfont="Arial"; # Submit button font
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
######################### Footer ###############
|
||||||
|
$footerheight="40px"; # Height of footer
|
||||||
|
$footercolor="#aaaaaa"; # Footer background color
|
||||||
|
$footertxt="#ffffff"; # Footer text color
|
||||||
|
$footersize="11px"; # Footer text size
|
||||||
|
$footerfont="Verdana"; # Footer font family
|
||||||
|
|
||||||
|
$footerlinks="#ffffff"; # Footer link color
|
||||||
|
$footerdecoration="underline"; # Footer link decoration
|
||||||
|
|
||||||
|
$footerhover="#000000"; # Footer hover link color
|
||||||
|
$footerhdecoration="none"; # Footer hover link decoration
|
||||||
|
|
||||||
|
######################### Popup comment box ###############
|
||||||
|
$popup="no"; # Popup comments or not (yes or no)
|
||||||
|
$cheight="500"; # Popup comment box height
|
||||||
|
$cwidth="400"; # Popup comments box width
|
||||||
|
$cpost="yes"; # Popup comments see entry or not (yes or no)
|
||||||
|
$popccolor="#ffffff"; # Popup comments background color
|
||||||
|
$pocolor="#4a4a4a"; # Popup comments text color
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
########################### FURTHER COUSTOMIZATION ###############
|
||||||
|
# Customizing the pages further can be done, using about.txt for your about page, and footer.txt for your footer.
|
||||||
|
# The file sidebar.txt can be altered for your blog sidebar content.
|
||||||
|
##########################################################################
|
||||||
|
1;
|
102
debug/debug_cave.txt
Normal file
102
debug/debug_cave.txt
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
|
||||||
|
приложить конечность к стене - error
|
||||||
|
пнуть стену
|
||||||
|
посмотреть на записку
|
||||||
|
прочитаит записку
|
||||||
|
посмотреть на ворона
|
||||||
|
погладить ворона
|
||||||
|
посмотреть в окно
|
||||||
|
посмотреть на скалу
|
||||||
|
посмотреть на
|
||||||
|
посмотреть на подоконник
|
||||||
|
взять ворона
|
||||||
|
пнуть ворона
|
||||||
|
жжж ворона
|
||||||
|
понюхать ворона
|
||||||
|
вернуться
|
||||||
|
кинуть ногу в ворона
|
||||||
|
кинуть конечность в ворона
|
||||||
|
взять конечность
|
||||||
|
достать конечность - error
|
||||||
|
потрогать ворона
|
||||||
|
дать ворону конечность
|
||||||
|
пойти назад - error
|
||||||
|
взять записку
|
||||||
|
взять стол
|
||||||
|
взять шар
|
||||||
|
зажечь спичку
|
||||||
|
кинуть спичку - error
|
||||||
|
подумать - error
|
||||||
|
кричать
|
||||||
|
кричать на ворона
|
||||||
|
убить ворона
|
||||||
|
ударить ворона
|
||||||
|
ударить ворона конечностью
|
||||||
|
каркнуть
|
||||||
|
каркнуть на ворона
|
||||||
|
поковыряться в носу - error
|
||||||
|
сесть - error
|
||||||
|
подойти к ворону
|
||||||
|
использовать конечность
|
||||||
|
конечность - error
|
||||||
|
выйти
|
||||||
|
забраться на подоконник - error
|
||||||
|
залезть на подоконник - error
|
||||||
|
посмотреть на шар
|
||||||
|
умереть - error
|
||||||
|
прочитать записку
|
||||||
|
подойти к ворону
|
||||||
|
осмотреть стол
|
||||||
|
выдвинуть ящик - error
|
||||||
|
открыть ящик
|
||||||
|
достать конечность - error
|
||||||
|
заглянуть в котомку - error
|
||||||
|
использовать конечность
|
||||||
|
прочитать записку
|
||||||
|
вернуться назад
|
||||||
|
поговорить с вороном
|
||||||
|
вылезти в окно - error
|
||||||
|
взезть на подоконник - error
|
||||||
|
скачать - error
|
||||||
|
посмотреть на потолок
|
||||||
|
найти тайный проход - error
|
||||||
|
найти тайный проход 2 - error
|
||||||
|
котомка - error
|
||||||
|
котомка - error
|
||||||
|
посмотреть в котомку
|
||||||
|
вернуться назад
|
||||||
|
достатать синюю конечность - error
|
||||||
|
достать конечность - error
|
||||||
|
зажечь спичку
|
||||||
|
вернуться
|
||||||
|
обшарить писменный стол - error
|
||||||
|
каркнуть
|
||||||
|
ципа цыпа - error
|
||||||
|
мяу - error
|
||||||
|
мяукнуть - error
|
||||||
|
гавкнуть - error
|
||||||
|
сашка дурак - error
|
||||||
|
попка дурак - error
|
||||||
|
ворон дурак
|
||||||
|
посмотреть на пол
|
||||||
|
убиться головой об стену
|
||||||
|
прочитать записку
|
||||||
|
посмотреть записку
|
||||||
|
почитать записку
|
||||||
|
посмотреть на шкаф
|
||||||
|
посмотреть в окно
|
||||||
|
посмотреть на ворона
|
||||||
|
уйти - error
|
||||||
|
выйти
|
||||||
|
прилепить конечность к стене - error
|
||||||
|
посмотреть на конечность
|
||||||
|
потрогать ворона
|
||||||
|
погладить ворона
|
||||||
|
залезть под стол - error
|
||||||
|
потрогать записку - error
|
||||||
|
убиться головой об стену - error
|
||||||
|
приложить ногу к стене ? - error
|
||||||
|
приложить ногу к стене - error
|
||||||
|
нога и стена - error
|
||||||
|
поставить конечность на стену
|
||||||
|
каркнуть
|
498
debug/debug_gostinaya.txt
Normal file
498
debug/debug_gostinaya.txt
Normal file
|
@ -0,0 +1,498 @@
|
||||||
|
|
||||||
|
продолжить - error
|
||||||
|
продолжить - error
|
||||||
|
продпродолжитьолжить - error
|
||||||
|
взять шар
|
||||||
|
взять шар
|
||||||
|
на лево - error
|
||||||
|
взять дискеты
|
||||||
|
взять дискеты
|
||||||
|
зажечь спичку
|
||||||
|
продолжить - error
|
||||||
|
продолжить - error
|
||||||
|
смотреть
|
||||||
|
фото - error
|
||||||
|
включить свет
|
||||||
|
взять книгу
|
||||||
|
смотреть фотографии
|
||||||
|
включить свет
|
||||||
|
взять конечность
|
||||||
|
взять шар
|
||||||
|
взять спичку
|
||||||
|
взять дискету
|
||||||
|
открыть шкаф
|
||||||
|
взять книгу
|
||||||
|
взять конечность
|
||||||
|
взять шарик
|
||||||
|
взять спичку
|
||||||
|
взять дискеты
|
||||||
|
взять записки
|
||||||
|
котомка
|
||||||
|
посмотреть шкаф
|
||||||
|
открыть шкаф
|
||||||
|
посмотреть шкаф
|
||||||
|
посмотреть записки
|
||||||
|
открыть шкаф
|
||||||
|
посмотреть в шкаф
|
||||||
|
посмотреть книги
|
||||||
|
протереть книги - error
|
||||||
|
взять книги
|
||||||
|
взять всё
|
||||||
|
взять конечность
|
||||||
|
взять шар
|
||||||
|
взять спичку
|
||||||
|
взять дискету
|
||||||
|
скачать
|
||||||
|
посмотреть на дискеты
|
||||||
|
посмотреть на полку
|
||||||
|
взять фотографии
|
||||||
|
взять гвозди
|
||||||
|
выйти - error
|
||||||
|
включить свет
|
||||||
|
посмотреть в котомку
|
||||||
|
инвентарь
|
||||||
|
пойти в пещеру - error
|
||||||
|
взять книгу
|
||||||
|
выйти - error
|
||||||
|
использовать ум
|
||||||
|
подумать - error
|
||||||
|
каркнуть - error
|
||||||
|
выйти из гостиной - error
|
||||||
|
заснуть - error
|
||||||
|
зажечь спичку
|
||||||
|
взять конечность
|
||||||
|
взять конечность
|
||||||
|
взять котомкеу
|
||||||
|
посмотреть на шар
|
||||||
|
соединить - error
|
||||||
|
взять книгу
|
||||||
|
взять конечность
|
||||||
|
взять щарик
|
||||||
|
включить - error
|
||||||
|
включить свет
|
||||||
|
смотреть фотографии
|
||||||
|
осмотреть конечность
|
||||||
|
осмотреть черный шар
|
||||||
|
читать записки - error
|
||||||
|
осмотреть записки
|
||||||
|
включить свет
|
||||||
|
взять записки
|
||||||
|
зажечь спичку
|
||||||
|
взять шар
|
||||||
|
взять конечность
|
||||||
|
взять спичку
|
||||||
|
звять дискеты - error
|
||||||
|
взять дискету
|
||||||
|
открыть шкаф
|
||||||
|
взять книгу
|
||||||
|
что дальше? - error
|
||||||
|
продолжить - error
|
||||||
|
посмотреть
|
||||||
|
свет - error
|
||||||
|
выключатель - error
|
||||||
|
нажать на выключатель - error
|
||||||
|
включить свет
|
||||||
|
посмотреть фотографии
|
||||||
|
взять шар
|
||||||
|
взять спичку
|
||||||
|
взять конечность
|
||||||
|
взять дискеты
|
||||||
|
взять дискеты
|
||||||
|
взять дискеты
|
||||||
|
прочитать записки - error
|
||||||
|
взять записки
|
||||||
|
подойти к столу - error
|
||||||
|
взять книги
|
||||||
|
окрыть шкаф - error
|
||||||
|
разбить шаром стело - error
|
||||||
|
разбить шаром стекло - error
|
||||||
|
котомка
|
||||||
|
вытащить из котомки шар
|
||||||
|
посмотреть на стол
|
||||||
|
стол - error
|
||||||
|
посмотреть на стол
|
||||||
|
поджеч записки - error
|
||||||
|
выключатель - error
|
||||||
|
включить выключатель - error
|
||||||
|
подойти к выключателю - error
|
||||||
|
повернуть выключатель - error
|
||||||
|
зажечь спичку
|
||||||
|
сорвать фотограффию автор - error
|
||||||
|
сорвать фотографии - error
|
||||||
|
посмотреть на фотографии
|
||||||
|
зажечь свет - error
|
||||||
|
пнуть шкаф
|
||||||
|
сильнее пнуть шкаф
|
||||||
|
сломать шкаф - error
|
||||||
|
поджечь шкаф
|
||||||
|
осмотреть шар
|
||||||
|
поджеч шар спичкой - error
|
||||||
|
осмотреть шкаф
|
||||||
|
разбить стекло шаром - error
|
||||||
|
разбить стекло - error
|
||||||
|
найти на шкафе замок - error
|
||||||
|
открыть шкаф шаром
|
||||||
|
взять книгу
|
||||||
|
взять нигу из шкафа
|
||||||
|
взять книгу
|
||||||
|
котомка
|
||||||
|
найти тайный проход - error
|
||||||
|
взять книгу
|
||||||
|
нажать на выключатель - error
|
||||||
|
включить выключатель - error
|
||||||
|
включить включатель - error
|
||||||
|
оторвать фотографию автор - error
|
||||||
|
взять книгу
|
||||||
|
продолжить - error
|
||||||
|
ааа бля аа убейся апстену - error
|
||||||
|
полка
|
||||||
|
' - error
|
||||||
|
gjkrf - error
|
||||||
|
полка
|
||||||
|
gjkrf - error
|
||||||
|
полка
|
||||||
|
бл - error
|
||||||
|
полка
|
||||||
|
полка
|
||||||
|
открыть шкаф
|
||||||
|
взять конечность
|
||||||
|
взять шар
|
||||||
|
взять спичку
|
||||||
|
посмотреть на выключатель
|
||||||
|
протереть выключатель - error
|
||||||
|
потрогать выключатель
|
||||||
|
включить выключатель - error
|
||||||
|
включить лампочку - error
|
||||||
|
включить свет
|
||||||
|
взять дискету
|
||||||
|
почитать записки - error
|
||||||
|
прочитать записки - error
|
||||||
|
посмотреть записки
|
||||||
|
взять книгу
|
||||||
|
выйти - error
|
||||||
|
залезть под стол - error
|
||||||
|
посмотреть на выключатель
|
||||||
|
закрыть шкаф
|
||||||
|
посмотреть на шар
|
||||||
|
посмотреть в окошечко
|
||||||
|
кинуть конечность - error
|
||||||
|
потрогать конечность
|
||||||
|
потрогать шар
|
||||||
|
потрогать дискету
|
||||||
|
потрогать себя
|
||||||
|
понюхать себя
|
||||||
|
понюхать конечность
|
||||||
|
потрогать спичку
|
||||||
|
спуститься в пещеру - error
|
||||||
|
взять книгу
|
||||||
|
посмотреть на конечность
|
||||||
|
потрогать шкаф
|
||||||
|
потрогать книги
|
||||||
|
потереть шар - error
|
||||||
|
протереть шар - error
|
||||||
|
заснуть - error
|
||||||
|
закричать
|
||||||
|
заплакать - error
|
||||||
|
подумать о шкафе - error
|
||||||
|
позвать автора - error
|
||||||
|
посмотреть на автора
|
||||||
|
автора! - error
|
||||||
|
попрыгать - error
|
||||||
|
сойти с ума - error
|
||||||
|
офигеть - error
|
||||||
|
спрятаться - error
|
||||||
|
спрятаться под стол - error
|
||||||
|
посмотреть под стол
|
||||||
|
посмотреть не на стол
|
||||||
|
усмотреть где-то тут стол
|
||||||
|
положить конечность на ст - error
|
||||||
|
закричать "да что ж это такое, ничего не распознается как надо, что ж делать-то, а?!"
|
||||||
|
упасть под стол - error
|
||||||
|
удариться об стол - error
|
||||||
|
сесть за стол - error
|
||||||
|
сесть на стол - error
|
||||||
|
встать на стол - error
|
||||||
|
лечь на стол - error
|
||||||
|
прибить третью полку
|
||||||
|
издать звук - error
|
||||||
|
почесаться - error
|
||||||
|
почесать себя - error
|
||||||
|
потрогать стол
|
||||||
|
потрогать книгу
|
||||||
|
потрогать фотографии
|
||||||
|
поднять стол - error
|
||||||
|
съесть спичку - error
|
||||||
|
взять себя
|
||||||
|
взять себя в руки
|
||||||
|
взять котомку
|
||||||
|
лечь на нижнюю полку
|
||||||
|
прибыть в полку
|
||||||
|
полку
|
||||||
|
скачать себя
|
||||||
|
выйти - error
|
||||||
|
вернуться - error
|
||||||
|
осмотретьс
|
||||||
|
использовать себя
|
||||||
|
выразиться точнее - error
|
||||||
|
распознать команду - error
|
||||||
|
собрать записки в кучу - error
|
||||||
|
посмотреть куда-то
|
||||||
|
посмотреть в никуда
|
||||||
|
посмотреть на гостиную
|
||||||
|
взять шкаф
|
||||||
|
взять стол
|
||||||
|
опрокинуть стол - error
|
||||||
|
положить конечность на полку
|
||||||
|
засунуть конечность в шар - error
|
||||||
|
убежать - error
|
||||||
|
- error
|
||||||
|
<> - error
|
||||||
|
:) - error
|
||||||
|
ждать
|
||||||
|
включить себя - error
|
||||||
|
погладить конечность - error
|
||||||
|
вывернуть котомку наизнан
|
||||||
|
вывернуть котомку наизнанку
|
||||||
|
найтись в котомке
|
||||||
|
котомк!
|
||||||
|
зайти в шкаф - error
|
||||||
|
забраться в шкаф - error
|
||||||
|
обидеться - error
|
||||||
|
понять что к чему - error
|
||||||
|
подпрыгнуть от неожиданности - error
|
||||||
|
взять волю
|
||||||
|
взять друзей
|
||||||
|
осторожно взять книгу
|
||||||
|
прилепить конечность к се - error
|
||||||
|
прилепить конечность к себе - error
|
||||||
|
прилепить конечность к стене - error
|
||||||
|
прилепить конечность к стене - error
|
||||||
|
ставить ногу стену - error
|
||||||
|
прилепить конечность на с - error
|
||||||
|
прилепить конечность на стену - error
|
||||||
|
полка
|
||||||
|
заебись - error
|
||||||
|
саша - error
|
||||||
|
аоександр - error
|
||||||
|
яковлев - error
|
||||||
|
ййййййййййййййййййййййййй - error
|
||||||
|
ццццццццццццццццццццццццц - error
|
||||||
|
5555555555555555555555555 - error
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%% - error
|
||||||
|
подойти к столу - error
|
||||||
|
посмотреть на фотографии
|
||||||
|
посмотреть на стол
|
||||||
|
открыть шкаф
|
||||||
|
котомка
|
||||||
|
взять все
|
||||||
|
взять шар
|
||||||
|
взять ногу
|
||||||
|
взять спичку
|
||||||
|
взять дискету
|
||||||
|
использовать шар вместо р
|
||||||
|
шар шаф - error
|
||||||
|
открыть шкаф шаром
|
||||||
|
взять книгу
|
||||||
|
включить свет
|
||||||
|
включить свет
|
||||||
|
включить свет
|
||||||
|
крикнуть - error
|
||||||
|
почесать голову - error
|
||||||
|
каркнуть - error
|
||||||
|
каркнуть - error
|
||||||
|
чесать голову - error
|
||||||
|
подумать - error
|
||||||
|
взять конечность - error
|
||||||
|
потрогать себя - error
|
||||||
|
потрогать себя - error
|
||||||
|
посмотреть нп конечность - error
|
||||||
|
посмотреть на конечность - error
|
||||||
|
включить свет
|
||||||
|
потрогать себя - error
|
||||||
|
потрогать себя - error
|
||||||
|
потрогать себя - error
|
||||||
|
потрогать себя - error
|
||||||
|
понюхать руки - error
|
||||||
|
понюхать руки - error
|
||||||
|
понюхать всё - error
|
||||||
|
понюхать ноги - error
|
||||||
|
понюхать ногу - error
|
||||||
|
понюхать конечность - error
|
||||||
|
привет - error
|
||||||
|
да - error
|
||||||
|
понюхать - error
|
||||||
|
понюхать ногу - error
|
||||||
|
привет - error
|
||||||
|
да - error
|
||||||
|
подумать
|
||||||
|
понюхать ноги - error
|
||||||
|
осмотреть котомку - error
|
||||||
|
работать - error
|
||||||
|
чесать голову - error
|
||||||
|
почесать руки - error
|
||||||
|
почесать голову - error
|
||||||
|
взять книгу - error
|
||||||
|
петь
|
||||||
|
включить свет
|
||||||
|
взять шар - error
|
||||||
|
взять конечность - error
|
||||||
|
взять книгу - error
|
||||||
|
посмотреть на фотографию - error
|
||||||
|
осмотреть фотографию - error
|
||||||
|
осмотреть фотографии - error
|
||||||
|
взять спичку - error
|
||||||
|
осмотреть конечность - error
|
||||||
|
взять конечность - error
|
||||||
|
взять книгу - error
|
||||||
|
посмотреть на шкаф - error
|
||||||
|
потрогать себя - error
|
||||||
|
петь
|
||||||
|
взять шар - error
|
||||||
|
открыть шкаф - error
|
||||||
|
петь - error
|
||||||
|
взять шар - error
|
||||||
|
включить свет
|
||||||
|
взять шар - error
|
||||||
|
взять дискету - error
|
||||||
|
петь
|
||||||
|
петь
|
||||||
|
петь
|
||||||
|
петь
|
||||||
|
каркнуть - error
|
||||||
|
включить свет
|
||||||
|
выключить свет
|
||||||
|
включить свет
|
||||||
|
открыть шкаф - error
|
||||||
|
взять спичку - error
|
||||||
|
убиться апстену - error
|
||||||
|
ы - error
|
||||||
|
прочитать записки - error
|
||||||
|
включить свет
|
||||||
|
взять шар - error
|
||||||
|
включить свет
|
||||||
|
осмотреть конечность - error
|
||||||
|
взять конечность - error
|
||||||
|
открыть шкаф - error
|
||||||
|
шкаф - error
|
||||||
|
осмотреть стол - error
|
||||||
|
посмотреть фотографии - error
|
||||||
|
осмотреть фотографии - error
|
||||||
|
фотографии - error
|
||||||
|
взять спичку - error
|
||||||
|
- error
|
||||||
|
информация - error
|
||||||
|
подойти к фотографиям - error
|
||||||
|
смотреть фотографии - error
|
||||||
|
осмотр фотографий - error
|
||||||
|
осмотр фотографий - error
|
||||||
|
повернуть налево - error
|
||||||
|
взять книгу - error
|
||||||
|
книга - error
|
||||||
|
шкаф - error
|
||||||
|
изучить фотографии - error
|
||||||
|
фотография - error
|
||||||
|
просмотр фотографий - error
|
||||||
|
зажечь свет - error
|
||||||
|
осветить - error
|
||||||
|
осветить помещение - error
|
||||||
|
зажечь спичку
|
||||||
|
осмотреть шар - error
|
||||||
|
осмотреть конечность - error
|
||||||
|
зажечь спичку
|
||||||
|
ощупать конечность - error
|
||||||
|
вглядеться в шар - error
|
||||||
|
поджечь конечность
|
||||||
|
разбить шар - error
|
||||||
|
посмотреть диски - error
|
||||||
|
прочитать записки - error
|
||||||
|
разбить шар - error
|
||||||
|
заглянуть в отверстие - error
|
||||||
|
спичку в отверстие - error
|
||||||
|
швырнуть шар - error
|
||||||
|
съесть конечность - error
|
||||||
|
поджарить конечность - error
|
||||||
|
сжечь гостинную - error
|
||||||
|
зажечь записки - error
|
||||||
|
зажечь спичку
|
||||||
|
поиграть с шаром - error
|
||||||
|
включить свет
|
||||||
|
взять конечность - error
|
||||||
|
взять шар - error
|
||||||
|
открыть шкаф - error
|
||||||
|
положить в котомку шар - error
|
||||||
|
взять дискету - error
|
||||||
|
включить свет
|
||||||
|
взять шао - error
|
||||||
|
взять шар - error
|
||||||
|
прыгнуть - error
|
||||||
|
подумать
|
||||||
|
потрогать - error
|
||||||
|
лево - error
|
||||||
|
включить - error
|
||||||
|
включить свет
|
||||||
|
взять книгу из шкафа - error
|
||||||
|
подойти - error
|
||||||
|
- error
|
||||||
|
взять шар - error
|
||||||
|
зажечь спичку
|
||||||
|
взять книгу - error
|
||||||
|
идти налево - error
|
||||||
|
идти направо - error
|
||||||
|
взять конечность - error
|
||||||
|
подойти к шкафу - error
|
||||||
|
зажечь спичку
|
||||||
|
подойти к стене - error
|
||||||
|
подойти к столу - error
|
||||||
|
взять дискету - error
|
||||||
|
выключить - error
|
||||||
|
взять шаро - error
|
||||||
|
взять шар - error
|
||||||
|
взять шар - error
|
||||||
|
включить свет
|
||||||
|
открыть - error
|
||||||
|
открыть шкаф - error
|
||||||
|
открыть шкаф - error
|
||||||
|
кричать
|
||||||
|
каркнуть - error
|
||||||
|
открыть шкаф - error
|
||||||
|
открыть шкаф - error
|
||||||
|
посмотреть книги - error
|
||||||
|
открыть шкаф - error
|
||||||
|
прочитать записки - error
|
||||||
|
включить свет
|
||||||
|
открыть шкаф - error
|
||||||
|
подойти к шкафу - error
|
||||||
|
включить свет
|
||||||
|
взять конечность - error
|
||||||
|
продолжить - error
|
||||||
|
ок - error
|
||||||
|
выпить чай - error
|
||||||
|
взять - error
|
||||||
|
посмотреть - error
|
||||||
|
взять конечность - error
|
||||||
|
взять шар - error
|
||||||
|
взять шар и спичку - error
|
||||||
|
прочитать записки - error
|
||||||
|
читать - error
|
||||||
|
записки - error
|
||||||
|
сесть - error
|
||||||
|
умереть - error
|
||||||
|
тупить - error
|
||||||
|
испугаться - error
|
||||||
|
делать ноги - error
|
||||||
|
аллохомора - error
|
||||||
|
включить свет
|
||||||
|
понюхать себя
|
||||||
|
включить свет
|
||||||
|
посмотреть записку
|
||||||
|
посмотреть дискеты
|
||||||
|
взять спичку
|
||||||
|
взять конечность
|
||||||
|
взять шар
|
||||||
|
нажать на выключатель - error
|
||||||
|
посмотреть фотографии
|
||||||
|
посмотреть стол
|
||||||
|
осмотреть стол
|
||||||
|
осмотреть фотографии
|
||||||
|
дернуть выключатель - error
|
||||||
|
посмотреть фотографии
|
109
debug/debug_index.txt
Normal file
109
debug/debug_index.txt
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
|
||||||
|
Лук - error
|
||||||
|
Бык - error
|
||||||
|
открыть мозг - error
|
||||||
|
рассмотреть внутренности - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
выпить чай - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
ПРОДОЛЖИТЬ - error
|
||||||
|
ПРОДОЛЖИТЬ - error
|
||||||
|
ПРОДОЛЖИТЬ - error
|
||||||
|
Продолжить
|
||||||
|
осмотреть - error
|
||||||
|
начать - error
|
||||||
|
посмотреть игры - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
привет - error
|
||||||
|
55 - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продлжить - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
войти - error
|
||||||
|
с\ - error
|
||||||
|
убиться головой об стену - error
|
||||||
|
перейти на главную страницу - error
|
||||||
|
осмотреться - error
|
||||||
|
осмотреть предметы - error
|
||||||
|
котомка - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
земля вертится - error
|
||||||
|
жизнь идёт - error
|
||||||
|
жить - error
|
||||||
|
вперёд на баррикады - error
|
||||||
|
посмотреть сайт - error
|
||||||
|
читать текст - error
|
||||||
|
открыть текст - error
|
||||||
|
изучать сайт - error
|
||||||
|
читать - error
|
||||||
|
смотреть на потолок - error
|
||||||
|
обсудить фильм - error
|
||||||
|
продолжить
|
||||||
|
ghjljk;bnm - error
|
||||||
|
продолжить
|
||||||
|
посмотреть на потолок - error
|
||||||
|
посмотреть на потолок - error
|
||||||
|
посмотреть - error
|
||||||
|
посмотреть вверх - error
|
||||||
|
смотреть на потолок - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
использовать силу - error
|
||||||
|
продолжить
|
||||||
|
использовать силу - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
осмотреться - error
|
||||||
|
посмотреть кругом - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
почесать руки - error
|
||||||
|
потрогать себя - error
|
||||||
|
1 а - error
|
||||||
|
у - error
|
||||||
|
у у - error
|
||||||
|
у ууу - error
|
||||||
|
{jxe rjnvre - error
|
||||||
|
Покажи команды - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
ok - error
|
||||||
|
продолжить
|
||||||
|
продолжить
|
||||||
|
осмотреть себя - error
|
||||||
|
осмотреть себя - error
|
||||||
|
потрогать себя - error
|
||||||
|
осмотреть себя - error
|
||||||
|
кто я?
|
||||||
|
потрогать себя - error
|
||||||
|
потрогать себя - error
|
||||||
|
потрогать себя - error
|
||||||
|
потрогать себя
|
||||||
|
осмотреть котомку
|
||||||
|
продолжить
|
||||||
|
продолжить
|
69
gostinaya.pl
Normal file
69
gostinaya.pl
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
require 'common.pl';
|
||||||
|
use CGI qw/:standard/;
|
||||||
|
use locale;
|
||||||
|
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||||
|
@pairs = split(/&/, $buffer);
|
||||||
|
foreach $pair (@pairs) {
|
||||||
|
local($name, $value) = split(/=/, $pair);
|
||||||
|
$value =~ tr/+/ /;
|
||||||
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
|
||||||
|
$value =~ s/<!--(.|\n)*-->//g;
|
||||||
|
$in{$name} = $value;
|
||||||
|
}
|
||||||
|
@cookieArray=split ("; ",$ENV{'HTTP_COOKIE'});
|
||||||
|
my $cookieName;my $cookieValue;
|
||||||
|
%cookieHash;
|
||||||
|
foreach (@cookieArray){
|
||||||
|
($cookieName,$cookieValue)=split("=",$_);
|
||||||
|
$cookieHash{$cookieName}=$cookieValue;
|
||||||
|
}
|
||||||
|
if ($ENV{'QUERY_STRING'} ne '') {
|
||||||
|
@qstr = split (/=/,$ENV{'QUERY_STRING'});
|
||||||
|
$command = $qstr[0];
|
||||||
|
$value = $qstr[1];
|
||||||
|
$value =~ s/[\x00-\x20<>\|;\(\)\$^\+!\^\[\]\?\"\'\`]//g;
|
||||||
|
|
||||||
|
if ($command eq "error"){$error=1;&displayDefault;}
|
||||||
|
else {&displayDefault;}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if ($in{'input'}) {&parsecommand;}
|
||||||
|
else {&displayDefault;}
|
||||||
|
}
|
||||||
|
sub displayDefault(){
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
print <<"EOF";
|
||||||
|
<html>\n
|
||||||
|
<head><script language="javascript">
|
||||||
|
window.onload=function() {document.getElementById("in").focus();};
|
||||||
|
</script>\n<title>Ãîñòèíàÿ Àëåêñàíäðà ßêîâëåâà</title>\n
|
||||||
|
EOF
|
||||||
|
if ($cookieHash{'light'}){print '<link type="text/css" rel="stylesheet" href="white.css">';}
|
||||||
|
else {print '<link type="text/css" rel="stylesheet" href="black.css">';}
|
||||||
|
print "</head><body>\nÂû íàõîäèòåñü â ãîñòèíîé.Çäåñü î÷åíü ";
|
||||||
|
if ($cookieHash{'light'}){print "ñâåòëî.";}
|
||||||
|
else {print "òåìíî.";}
|
||||||
|
print <<"EOF";
|
||||||
|
<p>Ñëåâà îò âàñ ñòîèò áîëüøîé êðàñíûé øêàô ñ êíèãàìè.<br>
|
||||||
|
Ñòåíà ïî ëåâóþ ñòîðîíó îò øêàôà óêðàøåíà ôîòîãðàôèÿìè àâòîðà ñòðàíèöû è åãî äðóçåé.<br>
|
||||||
|
Ïî ïðàâóþ ñòîðîíó îò øêàôà ñòîèò ïèñüìåííûé ñòîë,íà êîòîðîì ðàçáðîñàíû çàïèñêè.
|
||||||
|
Ðÿäîì ñî ñòîëîì ïðèáèòû äâå ïîëêè.Íà âåðõíåé ïîñòàâëåíî â ðÿä íåñêîëüêî äèñêåò.Íà ñòåíå âèäåí âûêëþ÷àòåëü.</p>
|
||||||
|
EOF
|
||||||
|
&lower_shelf();
|
||||||
|
if ($error){print "<p id=\"err\">Êîìàíäà íå ðàñïîçíàíà.</p>";$error=0;}
|
||||||
|
print "<FORM NAME='input' ACTION='parse.pl' METHOD='POST'>\n";
|
||||||
|
print "<input type='hidden' name='location' id='location' value='gostinaya'>\n";
|
||||||
|
print '> <input type=text id="in" name="input" size=64 maxlength=32>';
|
||||||
|
print "</body>\n</html>";
|
||||||
|
}
|
||||||
|
sub lower_shelf{#îïèñàíèå íèæíåé ïîëêè
|
||||||
|
if ($cookieHash{'leg'} && $cookieHash{'ball'} && $cookieHash{'match'}){print "Íà íèæíåé íè÷åãî íå ëåæèò.";}
|
||||||
|
elsif ($cookieHash{'leg'} && $cookieHash{'ball'}){print "Íà íèæíåé ëåæèò îäèíîêàÿ ñïè÷êà.";}
|
||||||
|
elsif ($cookieHash{'match'} && $cookieHash{'ball'}){print "Íà íèæíåé ëåæèò îäèíîêàÿ ÷üÿ-òî ñèíÿÿ êîíå÷íîñòü.";}
|
||||||
|
elsif ($cookieHash{'leg'} && $cookieHash{'match'}){print "Íà íèæíåé ëåæèò îäèíîêèé ÷¸ðíûé øàðèê.";}
|
||||||
|
elsif ($cookieHash{'leg'}){print "Íà íèæíåé ëåæàò ÷¸ðíûé áëåñòÿùèé øàðèê è ñïè÷êà.";}
|
||||||
|
elsif ($cookieHash{'ball'}){print "Íà íèæíåé ëåæàò êàêàÿ-òî ñèíÿÿ êîíå÷íîñòü è ñïè÷êà.";}
|
||||||
|
elsif ($cookieHash{'match'}){print "Íà íèæíåé ëåæàò êàêàÿ-òî ñèíÿÿ êîíå÷íîñòü è ÷¸ðíûé áëåñòÿùèé øàðèê ñ îêîøå÷êîì.";}
|
||||||
|
else {print"Íà íèæíåé ëåæèò êàêàÿ-òî êîíå÷íîñòü,êðóãëûé ÷¸ðíûé øàð ñ îòâåðñòèåì è ñïè÷êà.";}
|
||||||
|
}
|
98
index.pl
Normal file
98
index.pl
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
require 'common.pl';
|
||||||
|
use CGI qw/:standard/;
|
||||||
|
use locale;
|
||||||
|
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||||
|
@pairs = split(/&/, $buffer);
|
||||||
|
foreach $pair (@pairs) {
|
||||||
|
local($name, $value) = split(/=/, $pair);
|
||||||
|
$value =~ tr/+/ /;
|
||||||
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
|
||||||
|
$value =~ s/<!--(.|\n)*-->//g;
|
||||||
|
$in{$name} = $value;
|
||||||
|
}
|
||||||
|
if ($ENV{'QUERY_STRING'} ne '') {
|
||||||
|
@qstr = split (/=/,$ENV{'QUERY_STRING'});
|
||||||
|
$command = $qstr[0];
|
||||||
|
$value = $qstr[1];
|
||||||
|
$value =~ s/[\x00-\x20<>\|;\(\)\$^\+!\^\[\]\?\"\'\`]//g;
|
||||||
|
|
||||||
|
if ($command eq "help") {&displayHelp;}
|
||||||
|
elsif ($command eq "error"){$error=1;&displayDefault;}
|
||||||
|
else {&displayDefault;}
|
||||||
|
}
|
||||||
|
else{&displayDefault;}
|
||||||
|
my @cookieArray=split ("; ",$ENV{'HTTP_COOKIE'});
|
||||||
|
my $cookieName;my $cookieValue;my %cookieHash;
|
||||||
|
foreach (@cookieArray){
|
||||||
|
($cookieName,$cookieValue)=split("=",$_);
|
||||||
|
$cookieHash{$cookieName}=$cookieValue;
|
||||||
|
}
|
||||||
|
sub displayHelp(){
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
print <<"EOF";
|
||||||
|
<html>\n<head><title>Инструкция и помощь</title>\n
|
||||||
|
<link type="text/css" rel="stylesheet" href="white.css">
|
||||||
|
</head><body>\n
|
||||||
|
Мой сайт сделан в виде текстового приключения.
|
||||||
|
<p>Вы набираете команду в поле команд.Команда чаще всего состоит из глагола и существительного,например:<br>
|
||||||
|
взять ящик<br>
|
||||||
|
выпить чай<br>
|
||||||
|
выброситься в окно<br>
|
||||||
|
перекинуть дерево через плечо и вмазать им по самые помидоры<br>
|
||||||
|
делать дело<br>
|
||||||
|
использовать свой ум<br>
|
||||||
|
посмотреть на записку<br>
|
||||||
|
поговорить о жизни со шкафом<br>
|
||||||
|
пить пиво<br>
|
||||||
|
включить вилку в розетку<br>
|
||||||
|
Эти команды - лишь примеры,и они не будут работать.Но я надеюсь,что вы поняли идею.</p>
|
||||||
|
<p>Когда вы входите в комнату,вы читаете её описание.Оно неполно,и содержит лишь основные черты.Чтобы уточнить описание предмета,достаточно его осмотреть.Если он вам понравился,вы даже можете попробовать его взять с собой.</p>
|
||||||
|
<p>Одной из отличительных черт текстовых приключений от графических является нелинейность.Вы не можете войти в комнату и потыкать на каждый предмет в ней.Принцип научного тыка не работает.Команды "использовать","применить","добавить",которые являются детищами именно графических приключений,не работают.Если вы хотите что-нибудь сделать - описывайте это действие чётко и лаконично.Если вы будете использовать более пяти слов,то сценарий,вас,скорее всего,просто не поймёт.Конечно,стоит учитывать еще и вероятность ложных срабатываний.</p>
|
||||||
|
<p>Несколько слов о стратегии.</p>
|
||||||
|
<p>Не пытайтесь вводить нецензурные слова и "ненормативную лексику".Та же команда "вмазать по самые помидоры" - это,конечно,образно,но чаще всего неправильно.Здесь используется русский язык,и русский коренной.Конечно,есть и скрытые команды,но я могу вас уверить - нецензурных среди нет.<br>
|
||||||
|
<p>Второй отличительной чертой текстовых приключений является полная неработоспособность метода научного тыка.<br>Вы не можете просто тыкаться во все предметы,пока что-то не произойдет.По сути,это - прямое следствие первой отличительной черты.Чтобы что-то сделать,вы должны <b>чётко представлять</b> себе,что вы хотите от программы.Если вы хотите "открыть замок с помощью книги",это нечётко,причём независимо от контекста.Можно её понять как "открыть книгу,приложить ее к замку и повернуть".Можно её понять как "подубасить книгой по замку,авось откроется".Можно её понять как "выучить заклинание из книги и открыть им замок",даже как "выдрать кучу страниц из книги и набить ими замок,пока он не откроется от переполнения".Команда "прочитать книгу и открыть замок" слишком сложна,потому что содержит в себе 2 действия.А вот команды "прочитать книгу" и "открыть замок" уже могут сделать что-нибудь дельное.Но опять же,не всегда.</p>
|
||||||
|
<p>С другой стороны,из контекста многое ясно.Не надо уточнять,когда вы хотите посмотреть на стол,что это - стол,стоящий у шкафа,который стоит у стены...и так далее,если это - единственный стол в комнате.Если честно,то для краткости вообще не надо особых уточнений относительно предметов.Каждый предмет в каждой комнате уникален,поэтому уточнение "открыть левую дверцу шкафа" излишне,если можно просто "открыть шкаф".Уточнения могут и не влиять на обработку команд,но набирать длинное предложение вместо двух или трёх слов - это морока.</p>
|
||||||
|
<p>Я напоминаю,что мне можно написать по адресу oreolek>at<gmail.com.Единственные вопросы,на которые я точно не отвечу - это подсказки по прохождению.</p>
|
||||||
|
<p align="right"><i>Александр Яковлев a.k.a. Oreolek.</i></p>
|
||||||
|
<br>Это поле понимает только одну команду - "продолжить".Из контекста ясно,зачем она:
|
||||||
|
<FORM NAME='input' ACTION='parse.pl' METHOD='POST'>\n
|
||||||
|
<input type='hidden' name='location' id='location' value='index'>\n
|
||||||
|
> <input type=text id="in" name="input" size=64 maxlength=32>\n</form>
|
||||||
|
</body></html>
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
sub displayDefault(){
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
print <<"EOF";
|
||||||
|
<html>\n<head>
|
||||||
|
<script language="javascript">
|
||||||
|
window.onload=function() {document.getElementById("in").focus();};
|
||||||
|
</script>\n<title>Приветствие от автора</title>\n
|
||||||
|
<link type="text/css" rel="stylesheet" href="white.css">
|
||||||
|
</head><body>\n
|
||||||
|
Здравствуйте!<br>
|
||||||
|
Добро пожаловать на мой сайт.Вы находитесь на главной странице.
|
||||||
|
<br>Введите вашу команду в поле внизу.Вы можете делать огромное количество вещей,например,осматривать предметы,скачивать файлы
|
||||||
|
или брать понравившееся с собой,в свою "котомку".Котомка пригодится вам в решении задач,которые вы можете здесь встретить.<br>
|
||||||
|
Если вы хотите пользоваться функцией сохранения,то убедитесь,что в вашем браузере включена поддержка cookies.<br>
|
||||||
|
Также я хочу известить вас о том,что на сайте работает автосохранение.Все предметы,которые побывали в вашей котомке,
|
||||||
|
сохранятся в ней при следующем посещении сайта.<br>
|
||||||
|
Мне очень важно ваше мнение.Мой адрес электронной почты <em>oreolek >at< gmail.com.</em> Я стараюсь проверять свой электронный ящик как можно чаще,и пытаюсь ответить на каждое письмо.В любом случае,вы можете быть уверены:я прочту каждое письмо,которое пройдёт мой спам-фильтр.
|
||||||
|
<br>Чтобы продолжить,введите в поле внизу команду <b>"продолжить"</b>.
|
||||||
|
Удачи!<br>
|
||||||
|
<i>Oreolek.</i><br>
|
||||||
|
EOF
|
||||||
|
if ($error){print "<p id=\"err\">Команда не распознана.</p>";$error=0;}
|
||||||
|
print "Введите команду: ";
|
||||||
|
print "<FORM NAME='input' ACTION='parse.pl' METHOD='POST'>\n";
|
||||||
|
print "<input type='hidden' name='location' id='location' value='index'>\n";
|
||||||
|
print '> <input type=text id="in" name="input" size=64 maxlength=32></form>';
|
||||||
|
print <<"EOF";
|
||||||
|
<div id="hint"><noscript>Нажмите Tab,</noscript>введите вашу команду и нажмите Enter.<br/>
|
||||||
|
В недоумении? Прочтите <a href="?help">инструкцию</a>.<br>
|
||||||
|
<a href="changelog.html"><div align="right">Версия $version</div></a>
|
||||||
|
</div>
|
||||||
|
EOF
|
||||||
|
print "</body>\n</html>";
|
||||||
|
}
|
BIN
my_games/LZN.tgz
Normal file
BIN
my_games/LZN.tgz
Normal file
Binary file not shown.
BIN
my_games/Monday.tgz
Normal file
BIN
my_games/Monday.tgz
Normal file
Binary file not shown.
BIN
my_programs/magic8/magic8.tgz
Normal file
BIN
my_programs/magic8/magic8.tgz
Normal file
Binary file not shown.
53
outside.pl
Normal file
53
outside.pl
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
use locale;
|
||||||
|
require 'common.pl';
|
||||||
|
use CGI qw/:standard/;
|
||||||
|
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||||
|
my $debug_out="debug/debug_outside.txt";
|
||||||
|
@pairs = split(/&/, $buffer);
|
||||||
|
foreach $pair (@pairs) {
|
||||||
|
local($name, $value) = split(/=/, $pair);
|
||||||
|
$value =~ tr/+/ /;
|
||||||
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
|
||||||
|
$value =~ s/<!--(.|\n)*-->//g;
|
||||||
|
$in{$name} = $value;
|
||||||
|
}
|
||||||
|
my @cookieArray=split ("; ",$ENV{'HTTP_COOKIE'});
|
||||||
|
my $cookieName;my $cookieValue;
|
||||||
|
foreach (@cookieArray){
|
||||||
|
($cookieName,$cookieValue)=split("=",$_);
|
||||||
|
$cookieHash{$cookieName}=$cookieValue;
|
||||||
|
}
|
||||||
|
if ($ENV{'QUERY_STRING'} ne '') {
|
||||||
|
@qstr = split (/=/,$ENV{'QUERY_STRING'});
|
||||||
|
$command = $qstr[0];
|
||||||
|
$value = $qstr[1];
|
||||||
|
$value =~ s/[\x00-\x20<>\|;\(\)\$^\+!\^\[\]\?\"\'\`]//g;
|
||||||
|
|
||||||
|
if ($command eq "error"){$error=1;&displayDefault;}
|
||||||
|
else {&displayDefault;}
|
||||||
|
}
|
||||||
|
else{&displayDefault;}
|
||||||
|
sub displayDefault(){
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
print <<"EOF";
|
||||||
|
<html>\n
|
||||||
|
<head><script language="javascript">
|
||||||
|
window.onload=function() {document.getElementById("in").focus();};
|
||||||
|
</script>\n<title>Çà îêíîì</title>\n
|
||||||
|
EOF
|
||||||
|
if ($cookieHash{'light'}){print '<link type="text/css" rel="stylesheet" href="white.css">';}
|
||||||
|
else {print '<link type="text/css" rel="stylesheet" href="black.css">';}
|
||||||
|
print <<"EOF";
|
||||||
|
</head><body>
|
||||||
|
Âû ñòàâèòå ñèíþþ êîíå÷íîñòü íà ñòåíó.Îíà ïðèðàñòàåò ê êàìíþ,è âû ëåãêî âñòà¸òå íà íå¸.Çàöåïèâøèñü çà êðàé ñòåíû,âû çàáèðàåòåñü íàâåðõ.<br>
|
||||||
|
Íà ýòîì ìåñòå ÿ âûíóæäåí ïðèîñòàíîâèòü ìîé ðàññêàç. áóäóùåì îí ïðîäîëæèòñÿ.<br>
|
||||||
|
Ñ óâàæåíèåì,<be>
|
||||||
|
<em>Oreolek</em>
|
||||||
|
EOF
|
||||||
|
if ($error){print "<p id=\"err\">Êîìàíäà íå ðàñïîçíàíà.</p>";$error=0;}
|
||||||
|
print "<FORM NAME='input' ACTION='outside.pl' METHOD='POST'>\n";
|
||||||
|
print "<input type='hidden' name='location' id='location' value='outside'>\n";
|
||||||
|
print "> <input type=text id=\"in\" name=\"input\" size=54 maxlength=65>\n";
|
||||||
|
print "</body>\n</html>";
|
||||||
|
}
|
BIN
porry.h3m.gz
Normal file
BIN
porry.h3m.gz
Normal file
Binary file not shown.
38
songs/Baccara - Cara Mia.txt
Normal file
38
songs/Baccara - Cara Mia.txt
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
<b>Cara Mia</b>
|
||||||
|
Baccara<br>
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
Take him in, who’s warm and gentle<br>
|
||||||
|
Confidential, sentimental<br>
|
||||||
|
That’s the guy who’ll open up your diamond eyes
|
||||||
|
</p><p>
|
||||||
|
He will be there when you’re cryin’<br>
|
||||||
|
Bravely tryin’, self denyin’<br>
|
||||||
|
He can wipe the tears from your sweet diamond eyes
|
||||||
|
</p><p>
|
||||||
|
Cara Mia mine, the stars are gonna shine forever<br>
|
||||||
|
Cara Mia mine, the moon is lookin’ down on you<br>
|
||||||
|
Lend your heart, beg steal or borrow<br>
|
||||||
|
Lend your heart again tomorrow<br>
|
||||||
|
Cara Mia why should diamond eyes be blue<br>
|
||||||
|
<i>(repeat)</i>
|
||||||
|
</p><p>
|
||||||
|
Lady fair, your sigh’s infection<br>
|
||||||
|
And he’s wishin’ for nights of passion<br>
|
||||||
|
Look around and see the world through diamond eyes<br>
|
||||||
|
</p><p>
|
||||||
|
Love’s the game, it’s in your favour<br>
|
||||||
|
It’s got the flavour, for modern behaviour<br>
|
||||||
|
Take the cards and deal the hand with diamond eyes
|
||||||
|
</p><p>
|
||||||
|
Cara Mia mine, the stars are gonna shine forever<br>
|
||||||
|
Cara Mia mine, the moon is lookin’ down on you
|
||||||
|
</p><p>
|
||||||
|
Cara Mia mine, the stars are gonna shine forever<br>
|
||||||
|
Cara Mia mine, the moon is lookin’ down on you
|
||||||
|
</p><p>
|
||||||
|
Lend your heart, beg steal or borrow<br>
|
||||||
|
Lend your heart again tomorrow<br>
|
||||||
|
Cara Mia why should diamond eyes be blue
|
||||||
|
<i>(repeat)</i>
|
||||||
|
</p>
|
42
songs/Chris de Burgh - Lady In Red.txt
Normal file
42
songs/Chris de Burgh - Lady In Red.txt
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<b>Chris de Burgh</b><br>
|
||||||
|
Lady In Red
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
I've never seen you looking so lovely as you did tonight<br>
|
||||||
|
I've never seen you shine so bright<br>
|
||||||
|
I've never seen so many men ask you if you wanted to dance<br>
|
||||||
|
They're looking for a little romance<br>
|
||||||
|
Given half a chance<br>
|
||||||
|
And I've never seen that dress you're wearing<br>
|
||||||
|
Or that highlights in your hair<br>
|
||||||
|
That catch your eyes<br>
|
||||||
|
I have been blind
|
||||||
|
</p><p>
|
||||||
|
The lady in red is dancing with me<br>
|
||||||
|
Cheek to cheek<br>
|
||||||
|
There's nobody here<br>
|
||||||
|
It's just you and me<br>
|
||||||
|
It's where I wanna be<br>
|
||||||
|
But I hardly know this beauty by my side<br>
|
||||||
|
I'll never forget the way you look tonight
|
||||||
|
</p><p>
|
||||||
|
I've never seen you looking so gorgeous as you did tonight<br>
|
||||||
|
I've never seen you shine so bright you were amazing<br>
|
||||||
|
I've never seen so many people want to be there by your side<br>
|
||||||
|
And when you turned to me and smiled it took my breath away<br>
|
||||||
|
And I have never had such a feeling such a feeling<br>
|
||||||
|
Of complete and utter love, as I do tonight
|
||||||
|
</p><p>
|
||||||
|
The lady in red is dancing with me<br>
|
||||||
|
Cheek to cheek<br>
|
||||||
|
There's nobody here<br>
|
||||||
|
It's just you and me<br>
|
||||||
|
It's where I wanna be<br>
|
||||||
|
But I hardly know this beauty by my side<br>
|
||||||
|
I'll never forget the way you look tonight
|
||||||
|
</p><p>
|
||||||
|
I never will forget the way you look tonight<br>
|
||||||
|
The lady in red<br>
|
||||||
|
My lady in red<br>
|
||||||
|
I love you
|
||||||
|
</p>
|
59
songs/Joe Dassin - Le Champs-Elysees.txt
Normal file
59
songs/Joe Dassin - Le Champs-Elysees.txt
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
<b>Joe Dassin</b><br>
|
||||||
|
Le Champs-Elysees<br>
|
||||||
|
<br>
|
||||||
|
<i>Àâòîðû:Wilsh, Deighan<br>
|
||||||
|
Adaptateur: P. Delanoe<br>
|
||||||
|
Arrangements: Johnny Arthey<br>
|
||||||
|
(p) 1969 ed. Music 18<br>
|
||||||
|
Enregistrement: mars 1969<br>
|
||||||
|
Îðèãèíàë: "Waterloo road" par Smacka Fitzgibbons </i><br>
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
Je m'baladais sur l'avenue<br>
|
||||||
|
Le coeur ouvert a l'inconnu<br>
|
||||||
|
J'avais envie de dire bonjour<br>
|
||||||
|
A n'importe qui<br>
|
||||||
|
N'importe qui ce fut toi<br>
|
||||||
|
Je t'ai dit n'importe quoi<br>
|
||||||
|
Il suffisait de te parler<br>
|
||||||
|
Pour t'apprivoiser
|
||||||
|
</p><p>
|
||||||
|
Aux Champs-Elysees<br>
|
||||||
|
Aux Champs-Elysees<br>
|
||||||
|
Au soleil, sous la pluie<br>
|
||||||
|
A midi ou a minuit<br>
|
||||||
|
Il y a tout ce que vous voulez<br>
|
||||||
|
Aux Champs-Elysees
|
||||||
|
</p><p>
|
||||||
|
Tu m'as dit "J'ai rendez-vous<br>
|
||||||
|
Dans un sous-sol avec des fous<br>
|
||||||
|
Qui vivent la guitare a la main<br>
|
||||||
|
Du soir au matin"<br>
|
||||||
|
Alors je t'ai accompagnee<br>
|
||||||
|
On a chante, on a danse<br>
|
||||||
|
Et l'on n'a meme pas pense<br>
|
||||||
|
A s'embrasser
|
||||||
|
</p><p>
|
||||||
|
Aux Champs-Elysees<br>
|
||||||
|
Aux Champs-Elysees<br>
|
||||||
|
Au soleil, sous la pluie<br>
|
||||||
|
A midi ou a minuit<br>
|
||||||
|
Il y a tout ce que vous voulez<br>
|
||||||
|
Aux Champs-Elysees
|
||||||
|
</p><p>
|
||||||
|
Hier soir deux inconnus<br>
|
||||||
|
Et ce matin sur l'avenue<br>
|
||||||
|
Deux amoureux tout etourdis<br>
|
||||||
|
Par la longue nuit<br>
|
||||||
|
Et de l'Etoile a la Concorde<br>
|
||||||
|
Un orchestre a mille cordes<br>
|
||||||
|
Tous les oiseaux du point du jour<br>
|
||||||
|
Chantent l'amour
|
||||||
|
</p><p>
|
||||||
|
Aux Champs-Elysees<br>
|
||||||
|
Aux Champs-Elysees<br>
|
||||||
|
Au soleil, sous la pluie<br>
|
||||||
|
A midi ou a minuit<br>
|
||||||
|
Il y a tout ce que vous voulez<br>
|
||||||
|
Aux Champs-Elysees
|
||||||
|
</p>
|
76
songs/Linkin Park - In The End.txt
Normal file
76
songs/Linkin Park - In The End.txt
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
<b>Linkin Park</b><br>
|
||||||
|
In The End <br>
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
(It starts with) <br>
|
||||||
|
One thing / I don’t know why<br>
|
||||||
|
It doesn’t even matter how hard you try<br>
|
||||||
|
Keep that in mind / I designed this rhyme<br>
|
||||||
|
To explain in due time<br>
|
||||||
|
All I know<br>
|
||||||
|
time is a valuable thing<br>
|
||||||
|
Watch it fly by as the pendulum swings<br>
|
||||||
|
Watch it count down to the end of the day<br>
|
||||||
|
The clock ticks life away<br>
|
||||||
|
It’s so unreal<br>
|
||||||
|
Didn’t look out below<br>
|
||||||
|
Watch the time go right out the window<br>
|
||||||
|
Trying to hold on / but didn’t even know<br>
|
||||||
|
Wasted it all just to<br>
|
||||||
|
Watch you go<br>
|
||||||
|
I kept everything inside and even though I tried / it all fell apart<br>
|
||||||
|
What it meant to me / will eventually / be a memory / of a time when
|
||||||
|
</p><p>
|
||||||
|
I tried so hard<br>
|
||||||
|
And got so far<br>
|
||||||
|
But in the end<br>
|
||||||
|
It doesn't even matter<br>
|
||||||
|
I had to fall<br>
|
||||||
|
To lose it all<br>
|
||||||
|
But in the end<br>
|
||||||
|
It doesn't even matter
|
||||||
|
</p><p>
|
||||||
|
One thing / I don’t know why<br>
|
||||||
|
It doesn’t even matter how hard you try<br>
|
||||||
|
Keep that in mind / I designed this rhyme<br>
|
||||||
|
To remind myself how<br>
|
||||||
|
I tried so hard<br>
|
||||||
|
In spite of the way you were mocking me<br>
|
||||||
|
Acting like I was part of your property<br>
|
||||||
|
Remembering all the times you fought with me<br>
|
||||||
|
I’m surprised it got so (far) <br>
|
||||||
|
Things aren’t the way they were before<br>
|
||||||
|
You wouldn’t even recognize me anymore<br>
|
||||||
|
Not that you knew me back then<br>
|
||||||
|
But it all comes back to me<br>
|
||||||
|
In the end<br>
|
||||||
|
You kept everything inside and even though I tried / it all fell apart<br>
|
||||||
|
What it meant to me / will eventually / be a memory / of a time when I
|
||||||
|
</p><p>
|
||||||
|
I tried so hard<br>
|
||||||
|
And got so far<br>
|
||||||
|
But in the end<br>
|
||||||
|
It doesn’t even matter<br>
|
||||||
|
I had to fall<br>
|
||||||
|
To lose it all<br>
|
||||||
|
But in the end<br>
|
||||||
|
It doesn’t even matter
|
||||||
|
</p><p>
|
||||||
|
I’ve put my trust in you<br>
|
||||||
|
Pushed as far as I can go<br>
|
||||||
|
And for all this<br>
|
||||||
|
There’s only one thing you should know<br>
|
||||||
|
I’ve put my trust in you<br>
|
||||||
|
Pushed as far as I can go<br>
|
||||||
|
And for all this<br>
|
||||||
|
There’s only one thing you should know
|
||||||
|
</p><p>
|
||||||
|
I tried so hard<br>
|
||||||
|
And got so far<br>
|
||||||
|
But in the end<br>
|
||||||
|
It doesn’t even matter<br>
|
||||||
|
I had to fall<br>
|
||||||
|
To lose it all<br>
|
||||||
|
But in the end<br>
|
||||||
|
It doesn’t even matter
|
||||||
|
</p>
|
53
songs/Metallica - Nothing Else Matters.txt
Normal file
53
songs/Metallica - Nothing Else Matters.txt
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
<b>Metallica</b><br>
|
||||||
|
The black album<br>
|
||||||
|
Nothing Else Matters<br>
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
So close no matter how far<br>
|
||||||
|
couldn't be much more from the heart<br>
|
||||||
|
forever trusting who we are<br>
|
||||||
|
and nothing else matters
|
||||||
|
</p><p>
|
||||||
|
never opened myself this way<br>
|
||||||
|
life is ours, we live it our way<br>
|
||||||
|
all these words I don't just say<br>
|
||||||
|
and nothing else matters
|
||||||
|
</p><p>
|
||||||
|
trust I seek and I find in you<br>
|
||||||
|
every day for us something new<br>
|
||||||
|
open mind for a different view<br>
|
||||||
|
and nothing else matters
|
||||||
|
</p><p>
|
||||||
|
never cared for what they do<br>
|
||||||
|
never cared for what they know<br>
|
||||||
|
but I know
|
||||||
|
</p><p>
|
||||||
|
so close no matter how far<br>
|
||||||
|
couldn't be much more from the heart<br>
|
||||||
|
forever trusting who we are<br>
|
||||||
|
and nothing else matters
|
||||||
|
</p><p>
|
||||||
|
never cared for what they do<br>
|
||||||
|
never cared for what they know<br>
|
||||||
|
but I know
|
||||||
|
</p><p>
|
||||||
|
never opened myself this way<br>
|
||||||
|
life is ours, we live it our way<br>
|
||||||
|
all these words I don't just say
|
||||||
|
</p><p>
|
||||||
|
trust I seek and I find in you<br>
|
||||||
|
every day for us something new<br>
|
||||||
|
open mind for a different view<br>
|
||||||
|
and nothing else matters
|
||||||
|
</p><p>
|
||||||
|
never cared for what they say<br>
|
||||||
|
never cared for games they play<br>
|
||||||
|
never cared for what they do<br>
|
||||||
|
never cared for what they know<br>
|
||||||
|
and I know
|
||||||
|
</p><p>
|
||||||
|
so close no matter how far<br>
|
||||||
|
couldn't be much more from the heart<br>
|
||||||
|
forever trusting who we are<br>
|
||||||
|
no nothing else matters
|
||||||
|
</p>
|
50
songs/Paul Engemann - Scarface.txt
Normal file
50
songs/Paul Engemann - Scarface.txt
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
<b>Paul Engemann</b><br>
|
||||||
|
Scarface (Push it to the limit)<br>
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
Push it to the limit<br>
|
||||||
|
Walk along the razor's edge<br>
|
||||||
|
but don't look down, just keep your head<br>
|
||||||
|
and you'll be finished
|
||||||
|
</p><p>
|
||||||
|
Open up the limit<br>
|
||||||
|
past the point of no return<br>
|
||||||
|
You've reached the top but still you gotta learn<br>
|
||||||
|
how to keep it
|
||||||
|
</p><p>
|
||||||
|
Hit the wheel and double the stakes<br>
|
||||||
|
throttle wide open like a bat out of hell<br>
|
||||||
|
and you crash the gates<br>
|
||||||
|
<i>(crash the gates)</i>
|
||||||
|
</p><p>
|
||||||
|
Going for the back of beyond<br>
|
||||||
|
Nothing gonna stop you<br>
|
||||||
|
there's nothing that strong<br>
|
||||||
|
So close now you're nearly at the brink<br>
|
||||||
|
so, push it
|
||||||
|
</p><p>
|
||||||
|
<i>(Ooo yeah)</i>
|
||||||
|
</p><p>
|
||||||
|
Welcome to the limit<br>
|
||||||
|
<i>(The limit)</i>
|
||||||
|
Take it maybe one step more<br>
|
||||||
|
The power game's still playing so<br>
|
||||||
|
you better win it
|
||||||
|
</p><p>
|
||||||
|
Push it to the limit<br>
|
||||||
|
<i>(The limit)</i>
|
||||||
|
With no one left to stand in your way<br>
|
||||||
|
you might get careless, but you'll never be safe<br>
|
||||||
|
while you still feel it
|
||||||
|
</p><p>
|
||||||
|
Welcome to the limit<br>
|
||||||
|
<i>(The limit)</i>
|
||||||
|
Standing on the razor's edge<br>
|
||||||
|
don't look down just keep your head<br>
|
||||||
|
and you'll be finished
|
||||||
|
</p><p>
|
||||||
|
Welcome to the limit<br>
|
||||||
|
<i>(The limit)</i>
|
||||||
|
Push it to the limit<br>
|
||||||
|
<i>(The limit)</i>
|
||||||
|
</p>
|
20
songs/Piknik - Ieroglif.txt
Normal file
20
songs/Piknik - Ieroglif.txt
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<b>Пикник</b><br>
|
||||||
|
"Иероглиф"<br>
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
Мое имя - cтершийся Иероглиф<br>
|
||||||
|
Мои одежды залатаны ветром,<br>
|
||||||
|
Что несу я в зажатых ладонях<br>
|
||||||
|
Меня не спросят,и я не отвечу.
|
||||||
|
</p><p>
|
||||||
|
И как перед битвой,<br>
|
||||||
|
Решительной битвой,<br>
|
||||||
|
Стою у каждого перекрестка<br>
|
||||||
|
Hа море асфальта я вижу свой берег,<br>
|
||||||
|
Свою голубую россыпь.
|
||||||
|
</p><p>
|
||||||
|
Hа все вопросы pассмеюсь я тихо<br>
|
||||||
|
Hа все вопросы не будет ответа,<br>
|
||||||
|
Ведь имя мое - Иероглиф<br>
|
||||||
|
Мои одежды залатаны ветром.
|
||||||
|
</p>
|
23
songs/Piknik - Velikan.txt
Normal file
23
songs/Piknik - Velikan.txt
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<b>Пикник</b><br>
|
||||||
|
"Великан"<br>
|
||||||
|
<hr><p>
|
||||||
|
Если б мне такие руки<br>
|
||||||
|
Руки как у великана,<br>
|
||||||
|
Я б сложил их на своих коленях<br>
|
||||||
|
Сам сидел бы тихо, тише вздоха, тише камня.
|
||||||
|
</p><p>
|
||||||
|
Если б мне такие крылья<br>
|
||||||
|
Чтоб несли меня по свету,<br>
|
||||||
|
Ни минуты не колеблясь<br>
|
||||||
|
Я бы вырвал их и бросил ветру, бросил ветру.
|
||||||
|
</p><p>
|
||||||
|
Если б мне глаза такие<br>
|
||||||
|
Чтоб все видели, преград не зная,<br>
|
||||||
|
Я б закрыл их плотно-плотно<br>
|
||||||
|
Сам сидел бы тихо, головой качая, головой качая.
|
||||||
|
</p><p>
|
||||||
|
Если б залилась ты смехом,<br>
|
||||||
|
С ветром косами играя,<br>
|
||||||
|
Я летел бы вслед за эхом,<br>
|
||||||
|
Дивный голос догоняя, догоняя.
|
||||||
|
</p>
|
28
songs/Secret - Dai mne.txt
Normal file
28
songs/Secret - Dai mne.txt
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<b>Секрет</b><br>
|
||||||
|
Дай мне<br>
|
||||||
|
<br>
|
||||||
|
<i>музыка и слова М.Леонидова, Н.Фоменко и А.Заблудовского </i><br>
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
Распахните ваши окна<br>
|
||||||
|
Ветру свободы,<br>
|
||||||
|
Этот день мы будем помнить<br>
|
||||||
|
Долгие годы.<br>
|
||||||
|
Дайте друг другу руки,<br>
|
||||||
|
Пусть разбудят этот мир оркестра звуки!
|
||||||
|
</p><p>
|
||||||
|
<i>Пр:</i> <br>
|
||||||
|
Дай мне тепло твоих ладоней!<br>
|
||||||
|
Верь - мы вражду и смерть прогоним!<br>
|
||||||
|
Встанем спиною к спине,<br>
|
||||||
|
И нам будет легче вдвойне!
|
||||||
|
</p><p>
|
||||||
|
И, назло снегам и грому, ливням и бурям,<br>
|
||||||
|
Пусть звенит над нашим домом<br>
|
||||||
|
Солнце июля.<br>
|
||||||
|
Здесь всем найдется место,<br>
|
||||||
|
Пусть летит над сонным миром<br>
|
||||||
|
Звук оркестра!
|
||||||
|
</p><p>
|
||||||
|
<i>Пр: (2 раза)</i>
|
||||||
|
</p>
|
52
songs/Secret - Imeniny u Kristiny.txt
Normal file
52
songs/Secret - Imeniny u Kristiny.txt
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
<b>Секрет</b><br>
|
||||||
|
Именины у Кристины <br>
|
||||||
|
<br>
|
||||||
|
<i>музыка М.Леонидова, слова Д.Рубина </i>
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
Раз в год именины у Кристины, и вот<br>
|
||||||
|
Раз в год всех друзей Кристина зовет.<br>
|
||||||
|
Раз в год как положено<br>
|
||||||
|
Все расположено,<br>
|
||||||
|
Все разложено, все стынет и ждет.<br>
|
||||||
|
Пол с утра натерт до блеска Кристиной,<br>
|
||||||
|
Стол раздвинут и накрыт в гостиной,<br>
|
||||||
|
Стулья расставлены,<br>
|
||||||
|
Свечи заправлены<br>
|
||||||
|
В праздничный пирог.
|
||||||
|
</p><p>
|
||||||
|
<i>Пр:</i>
|
||||||
|
Именины, именины у Кристины -<br>
|
||||||
|
Полон дом гостей.<br>
|
||||||
|
Именины: розы, книги, апельсины<br>
|
||||||
|
Дарят нынче ей.<br>
|
||||||
|
Эй, Кристина, я нынче желаю тебе долгих лет!<br>
|
||||||
|
Эй, Кристина, я нынче желаю тебе жить без бед!<br>
|
||||||
|
Эй, Кристина!
|
||||||
|
</p><p>
|
||||||
|
Раз в год дом устанет от счастливых хлопот,<br>
|
||||||
|
Раз в год до полуночи дом кругом пойдет,<br>
|
||||||
|
Вот-вот праздник примется,<br>
|
||||||
|
Ждет именинница:<br>
|
||||||
|
Час назначенный сейчас пробьет.<br>
|
||||||
|
Скорей! Все готово давно у Кристины.<br>
|
||||||
|
Эй! Ждут начала именины:<br>
|
||||||
|
Стулья расставлены,<br>
|
||||||
|
Свечи заправлены<br>
|
||||||
|
В праздничный пирог.
|
||||||
|
</p><p>
|
||||||
|
<i>Пр:</i>
|
||||||
|
</p><p>
|
||||||
|
Раз в год праздник кончится, когда рассветет,<br>
|
||||||
|
Раз в год провожать друзей Кристина пойдет,<br>
|
||||||
|
Вот-вот все закончится,<br>
|
||||||
|
Ей плакать хочется,<br>
|
||||||
|
Свечи гасятся, и сьеден торт.<br>
|
||||||
|
Дом, где справлялись именины Кристины,<br>
|
||||||
|
Сном покрыт, и комнаты пустынны.<br>
|
||||||
|
Небо затянется, <br>
|
||||||
|
Только останется<br>
|
||||||
|
Вспоминать весь год...
|
||||||
|
</p><p>
|
||||||
|
<i>Пр:</i>
|
||||||
|
</p>
|
39
songs/Secret - Tvoi Shagi.txt
Normal file
39
songs/Secret - Tvoi Shagi.txt
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<b>Cекрет</b><br>
|
||||||
|
Твои шаги
|
||||||
|
<hr>
|
||||||
|
<p>1. Когда за окном глаза закроет день,<br>
|
||||||
|
И на небе ночном проснется звезд сирень,<br>
|
||||||
|
А там, там за углом фонарь качает тень,<br>
|
||||||
|
Я вновь одинок, а ветер листья крутит.<br>
|
||||||
|
Часы на стене мне снова вечер мерят,<br>
|
||||||
|
В пустой темноте лишь только я и время,<br>
|
||||||
|
Но кажется мне - твои шаги за дверью<br>
|
||||||
|
Вечер разбудят.
|
||||||
|
</p><p>
|
||||||
|
Пр: Под луной голубой<br>
|
||||||
|
Мы, обнявшись с тобой,<br>
|
||||||
|
Над водой стоим.<br>
|
||||||
|
Звезды в вечной дали<br>
|
||||||
|
Дарят песни свои<br>
|
||||||
|
Только нам двоим.<br>
|
||||||
|
Город спит, но для нас<br>
|
||||||
|
Заиграют сейчас<br>
|
||||||
|
Фонари свой полуночный вальс,<br>
|
||||||
|
Отдадимся беспечному ветру в обьятья -<br>
|
||||||
|
Эта ночь будет только для нас.
|
||||||
|
</p><p>
|
||||||
|
2. Но вечер безмолвен,<br>
|
||||||
|
И шагов не слышно.<br>
|
||||||
|
Лишь белые волны<br>
|
||||||
|
Облаков над крышей,<br>
|
||||||
|
Плывут на восток,<br>
|
||||||
|
Где скоро утро будет,<br>
|
||||||
|
Я одинок,<br>
|
||||||
|
А ветер листья крутит.<br>
|
||||||
|
Часы на стене мне снова вечер мерят,<br>
|
||||||
|
В пустой темноте лишь только я и время,<br>
|
||||||
|
Но кажется мне - твои шаги за дверью<br>
|
||||||
|
Вечер разбудят.<br>
|
||||||
|
</p><p>
|
||||||
|
<i>Пр: </i>
|
||||||
|
</p>
|
429
weblog-admin.pl
Normal file
429
weblog-admin.pl
Normal file
|
@ -0,0 +1,429 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
require 'config.pl';
|
||||||
|
$header = "$forumdir/header.txt";
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
################ NO EDITING NEEDED BELOW HERE ###################
|
||||||
|
##########################################################################
|
||||||
|
#
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# parse form values
|
||||||
|
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||||
|
@pairs = split(/&/, $buffer);
|
||||||
|
foreach $pair (@pairs) {
|
||||||
|
local($name, $value) = split(/=/, $pair);
|
||||||
|
$value =~ tr/+/ /;
|
||||||
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
|
||||||
|
$value =~ s/<!--(.|\n)*-->//g;
|
||||||
|
$in{$name} = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# miscellaneous values
|
||||||
|
$command = $in{'command'};
|
||||||
|
@months = ("January","February","March","April","May","June","July","August","September","October","November","December");
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# determine what sub-routine to run based on the $command form value
|
||||||
|
if ($command eq '') {&login;}
|
||||||
|
elsif ($command eq 'displayList') {&displayList;}
|
||||||
|
elsif ($command eq 'displayThreads') {&displayThreads;}
|
||||||
|
elsif ($command eq 'deleteThreads') {&deleteThreads;}
|
||||||
|
elsif ($command eq 'displayEditThread') {&displayEditThread;}
|
||||||
|
elsif ($command eq 'editThread') {&editThread;}
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# prints the login page
|
||||||
|
sub login {
|
||||||
|
&printHeader("$forumclass");
|
||||||
|
print <<"EOF";
|
||||||
|
<tr><td><table cellpadding="10" cellspacing="1" border="0" width="410" class="border"><tr><td colspan="0" bgcolor="white"><br><table width="410" border="0" cellspacing="1" cellpadding="0" bordercolor="white"><table width="410" align="center" border="0" cellspacing="0" cellpadding="0"><h2>Weblog Administrator - Please Login</h2> </span><BR><BR>
|
||||||
|
<FORM ACTION="weblog-admin.pl" METHOD="POST">
|
||||||
|
<INPUT TYPE="Hidden" NAME="command" VALUE="displayList">
|
||||||
|
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>
|
||||||
|
<TR><TD CLASS="txt">Username:</TD>
|
||||||
|
<TD><INPUT TYPE="Text" CLASS="txt" NAME="username" SIZE="25"></TD></TR>
|
||||||
|
<TR><TD CLASS="txt">Password:</TD>
|
||||||
|
<TD><INPUT TYPE="Password" CLASS="txt" NAME="password" SIZE="25"></TD></TR>
|
||||||
|
<TR><TD CLASS="headers"><BR><BR></TD>
|
||||||
|
<td><INPUT TYPE="Submit" CLASS="submit" VALUE="Login"></td></TR>
|
||||||
|
</TABLE>
|
||||||
|
</FORM><BR>Return to your weblog by clicking <A HREF="weblog.pl">here</A><br>----------------------------------------------------------------------------------<BR><small>Powered by PerlBlog</small><br><br></tr></table></td></tr></td></tr></table></div>
|
||||||
|
EOF
|
||||||
|
&printSooter;
|
||||||
|
}
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# checks username and password, called from every sub-routine
|
||||||
|
sub checkAccess {
|
||||||
|
if ($in{'username'} ne $adminusername || $in{'password'} ne $adminpassword) {
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
print "Access Denied - Click Back to Retry Your Login and Password.";
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
##########################################################################
|
||||||
|
# prints a list of months that have been archived
|
||||||
|
sub displayList {
|
||||||
|
&checkAccess;
|
||||||
|
&printHeader("");
|
||||||
|
print "<FORM ACTION=\"weblog-admin.pl\" METHOD=\"POST\">\n";
|
||||||
|
open(MONTHS,"$forumdir/months.txt");
|
||||||
|
@headerfiles = <MONTHS>;
|
||||||
|
close(MONTHS);
|
||||||
|
print <<"EOF";
|
||||||
|
<tr><td><table cellpadding="10" cellspacing="1" border="0" width="410" class="border"><tr><td colspan="0" bgcolor="white"><BR><table width="410" border="0" cellspacing="1" cellpadding="0" bordercolor="white"><table width="410" align="center" border="0" cellspacing="0" cellpadding="0"><h2>Choose Month to Edit</h2> </span><p> </p>
|
||||||
|
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>
|
||||||
|
<TR BGCOLOR="#FFFFFF"><TD CLASS="headers">Month</TD><TD CLASS="headers">Year</TD></TR>
|
||||||
|
EOF
|
||||||
|
foreach $headerfile (@headerfiles) {
|
||||||
|
if ($headerfile ne '') {
|
||||||
|
$year = substr ($headerfile,0,4);
|
||||||
|
$month = substr ($headerfile,4,5);
|
||||||
|
$month = sprintf("%5.0f", $month);
|
||||||
|
$monthname = $months[$month-1];
|
||||||
|
$headerfile = substr ($headerfile,0,6);
|
||||||
|
print "<TR BGCOLOR=\"#FFFFFF\"><TD><INPUT TYPE=\"Radio\" NAME=\"headerfile\" VALUE=\"$headerfile\">$monthname </TD><TD>$year</TD></TR>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print <<"EOF";
|
||||||
|
<INPUT TYPE="Hidden" NAME="username" VALUE="$in{username}">
|
||||||
|
<INPUT TYPE="Hidden" NAME="password" VALUE="$in{password}">
|
||||||
|
<INPUT TYPE="Hidden" NAME="command" VALUE="displayThreads">
|
||||||
|
<TR BGCOLOR="#FFFFFF"><TD><BR><BR><INPUT TYPE="Submit" class="submit" VALUE="Edit Month"></TD></TR>
|
||||||
|
</TABLE>
|
||||||
|
</FORM><br><BR><small>Powered by PerlBlog</small><br><br></tr></table></td></tr></td></tr></table></div>
|
||||||
|
EOF
|
||||||
|
&printSooter;
|
||||||
|
}
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# print the headers for a particular month
|
||||||
|
sub displayThreads {
|
||||||
|
&checkAccess;
|
||||||
|
$headerfile = $in{'headerfile'};
|
||||||
|
|
||||||
|
$year = substr ($headerfile,0,4);
|
||||||
|
$month = substr ($headerfile,4,5);
|
||||||
|
$month = sprintf("%5.0f", $month);
|
||||||
|
$monthname = $months[$month-1];
|
||||||
|
|
||||||
|
open(DATA,"$forumdir/$headerfile.txt");
|
||||||
|
@headerlines = <DATA>;
|
||||||
|
close(DATA);
|
||||||
|
$length = @headerlines;
|
||||||
|
|
||||||
|
&printHeader("");
|
||||||
|
print <<"EOF";
|
||||||
|
<SCRIPT LANGUAGE="JavaScript">
|
||||||
|
<!--
|
||||||
|
|
||||||
|
function submitForm(which) {
|
||||||
|
df = document.forum
|
||||||
|
if (which == 'delete') {
|
||||||
|
var str = ""
|
||||||
|
for (var i=0; i<$length; i++) {
|
||||||
|
if (eval('df.delete'+i+'.checked == true')) {
|
||||||
|
str += eval('df.delete'+i+'.value')+","
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (str!="") {
|
||||||
|
df.todelete.value = str.substring(0,str.length-1)
|
||||||
|
df.command.value = "deleteThreads"
|
||||||
|
df.submit()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
df.todelete.value = str.substring(0,str.length-1)
|
||||||
|
df.command.value = "deleteThreads"
|
||||||
|
df.submit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (which == 'edit') {
|
||||||
|
var editselected = false
|
||||||
|
for (var i=0; i<df.toedit.length; i++) {
|
||||||
|
if (df.toedit[i].checked == true) {
|
||||||
|
editselected = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (editselected == false) {
|
||||||
|
df.command.value = "displayEditThread"
|
||||||
|
df.submit()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
df.command.value = "displayEditThread"
|
||||||
|
df.submit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
|
||||||
|
<tr><td><table cellpadding="10" cellspacing="1" border="0" width="410" class="border"><tr><td colspan="0" bgcolor="white"><BR><table width="410" border="0" cellspacing="1" cellpadding="0" bordercolor="white"><table width="410" align="center" border="0" cellspacing="0" cellpadding="0"><h2>Editing/Deleting Entries | <A HREF="weblog.pl"><B>$monthname $year</b></a></h2><BR><BR>
|
||||||
|
<TABLE BORDER=0 width="650" CELLSPACING=1 CELLPADDING=1>
|
||||||
|
<TR BGCOLOR="#FFFFFF"><TD class="border"> Delete</TD><TD class="border"> Edit</TD><TD class="border"> Subject</TD><TD class="border"> Entry</TD><TD CLASS="headers">Responses</TD>
|
||||||
|
<FORM NAME="forum" ACTION="weblog-admin.pl" METHOD="POST">
|
||||||
|
EOF
|
||||||
|
for ($i=0;$i<@headerlines;$i++) {
|
||||||
|
if ($headerlines[$i] ne '') {
|
||||||
|
@info = split (/_/, $headerlines[$i]);
|
||||||
|
$num = $info[0];
|
||||||
|
$subject = $info[1];
|
||||||
|
$name = $info[2];
|
||||||
|
$date = $info[3];
|
||||||
|
$responses = $info[6];
|
||||||
|
print <<"EOF";
|
||||||
|
<TR BGCOLOR="#FFFFFF"><TD ALIGN="CENTER"><INPUT TYPE="Checkbox" NAME="delete$i" VALUE="$num"></TD>
|
||||||
|
<TD ALIGN="CENTER"><INPUT TYPE="Radio" NAME="toedit" VALUE="$num"></TD>
|
||||||
|
<TD> $subject </TD><TD> $name </TD><TD ALIGN="CENTER">$responses</TD></TR>
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print <<"EOF";
|
||||||
|
<TR BGCOLOR="#FFFFFF">
|
||||||
|
<TD><BR><BR><INPUT TYPE="BUTTON" class="submit" VALUE="Delete" onClick="submitForm('delete')"></TD>
|
||||||
|
<TD><BR><BR><INPUT TYPE="BUTTON" class="submit" VALUE="Edit" onClick="submitForm('edit')"></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="todelete">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="headerfile" VALUE="$headerfile">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="username" VALUE="$in{username}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="password" VALUE="$in{password}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="command" VALUE="">
|
||||||
|
</FORM><br><BR><small>Powered by PerlBlog</small><br><br></tr></table></td></tr></td></tr></table></div>
|
||||||
|
EOF
|
||||||
|
&printSooter;
|
||||||
|
}
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# prints the edit thread page, where you edit the source file to a message
|
||||||
|
sub displayEditThread {
|
||||||
|
&checkAccess;
|
||||||
|
$headerfile = $in{'headerfile'};
|
||||||
|
$toedit = $in{'toedit'};
|
||||||
|
$toedit =~ s/[\x00-\x20<>\|;\(\)\$^\+!\^\[\]\?\"\'\`]//g;
|
||||||
|
&printHeader("");
|
||||||
|
print <<"EOF";
|
||||||
|
<tr><td><table cellpadding="10" cellspacing="1" border="0" width="750" class="border"><tr><td colspan="0" bgcolor="white"><BR><table width="600" border="0" cellspacing="1" cellpadding="0" bordercolor="white"><table width="600" align="center" border="0" cellspacing="0" cellpadding="0"><h2>Editing/Deleting Entries | <A HREF="weblog.pl">Thread $toedit</A></h2><br><font size="1">Edit within the first <name> parameters for the actual blog entry<br>Comments follow blog entry</font></span><center><BR><BR></B>
|
||||||
|
<FORM NAME="forum" ACTION="weblog-admin.pl" METHOD="POST">
|
||||||
|
<TEXTAREA NAME="body" class="txt" ROWS=20>
|
||||||
|
EOF
|
||||||
|
open(DATA,"$forumdir/messages/$toedit.txt");
|
||||||
|
@msglines = <DATA>;
|
||||||
|
close(DATA);
|
||||||
|
foreach $msgline (@msglines) {
|
||||||
|
print $msgline;
|
||||||
|
}
|
||||||
|
print "</TEXTAREA>\n";
|
||||||
|
print <<"EOF";
|
||||||
|
<BR>
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="toedit" VALUE="$toedit">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="headerfile" VALUE="$headerfile">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="username" VALUE="$in{username}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="password" VALUE="$in{password}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="command" VALUE="editThread"><BR><BR>
|
||||||
|
<INPUT TYPE="Submit" class="submit" VALUE="Ñîõðàíèòü">
|
||||||
|
</FORM><br><BR><small>Powered by PerlBlog</small><br><br></tr></table></td></tr></td></tr></table></div>
|
||||||
|
EOF
|
||||||
|
&printSooter;
|
||||||
|
}
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# sub-routine of &displayPreview that wraps a block of text to a given line length
|
||||||
|
# Deleted to see if it affect runing on Linux. Works okay on NTP on PC with Apache
|
||||||
|
# Not needed for admin
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# saves the message that was being edited
|
||||||
|
sub editThread {
|
||||||
|
&checkAccess;
|
||||||
|
&printHeader("");
|
||||||
|
$headerfile = $in{'headerfile'};
|
||||||
|
$toedit = $in{'toedit'};
|
||||||
|
$body = $in{'body'}; ### redid, dumped unneeded textwrap subroutine
|
||||||
|
@msglines = split(/\n/,$body);
|
||||||
|
|
||||||
|
open(DATA,">$forumdir/messages/$toedit.txt");
|
||||||
|
foreach $msgline (@msglines) {
|
||||||
|
if ($msgline !~ /<\/msg>/) {chop($msgline);}
|
||||||
|
print DATA "$msgline\n";
|
||||||
|
}
|
||||||
|
close(DATA);
|
||||||
|
|
||||||
|
for ($i=0; $i<@msglines; $i++) {
|
||||||
|
if ($msglines[$i] =~ /<subject>(.*)<\/subject>/) {
|
||||||
|
$subject = $1;
|
||||||
|
}
|
||||||
|
if ($msglines[$i] =~ /<name>(.*)<\/name>/) {
|
||||||
|
$name = $1;
|
||||||
|
}
|
||||||
|
if ($msglines[$i] =~ /<date>(.*)<\/date>/) {
|
||||||
|
$date = $1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$replies = -1;
|
||||||
|
for ($i=0; $i<@msglines; $i++) {
|
||||||
|
if ($msglines[$i] =~ /<msg>/) {
|
||||||
|
$replies += 1;
|
||||||
|
$replytime
|
||||||
|
}
|
||||||
|
}
|
||||||
|
open(HEADER,"$forumdir/$headerfile.txt");
|
||||||
|
@headers = <HEADER>;
|
||||||
|
close(HEADER);
|
||||||
|
open(HEADER,">$forumdir/$headerfile.txt");
|
||||||
|
foreach $headerline (@headers) {
|
||||||
|
@headerdata = split(/_/, $headerline);
|
||||||
|
$threadnum = $headerdata[0];
|
||||||
|
if ($threadnum == $toedit) {
|
||||||
|
@headerdata = split(/_/, $headerline);
|
||||||
|
print HEADER "$toedit\_$subject\_$name\_$image\_$postm\_$date\_0\_ \n";
|
||||||
|
}
|
||||||
|
else {print HEADER "$headerline";}
|
||||||
|
}
|
||||||
|
close(HEADER);
|
||||||
|
|
||||||
|
open(ALL,"$forumdir/all.txt");
|
||||||
|
@headers = <ALL>;
|
||||||
|
close(ALL);
|
||||||
|
open(ALL,">$forumdir/all.txt");
|
||||||
|
foreach $headerline (@headers) {
|
||||||
|
@headerdata = split(/_/, $headerline);
|
||||||
|
$threadnum = $headerdata[0];
|
||||||
|
if ($threadnum == $toedit) {
|
||||||
|
@headerdata = split(/_/, $headerline);
|
||||||
|
print ALL "$toedit\_$subject\_$name\_$image\_$postm\_$date\_0\_ \n";
|
||||||
|
}
|
||||||
|
else {print ALL "$headerline";}
|
||||||
|
}
|
||||||
|
close(ALL);
|
||||||
|
print <<"EOF";
|
||||||
|
<tr><td><table cellpadding="10" cellspacing="1" border="0" width="410" class="border"><tr><td colspan="0" bgcolor="white"><BR><table width="410" border="0" cellspacing="1" cellpadding="0" bordercolor="white"><table width="410" align="center" border="0" cellspacing="0" cellpadding="0"><h2>Editing Entries | <A HREF="weblog.pl">Successful</A></h2><BR><BR>
|
||||||
|
<P>Message number $toedit has been saved<BR><BR>
|
||||||
|
<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="1"><TR>
|
||||||
|
<FORM NAME="forum" ACTION="weblog-admin.pl" METHOD="POST">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="username" VALUE="$in{username}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="password" VALUE="$in{password}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="command" VALUE="displayList">
|
||||||
|
<INPUT TYPE="Submit" class="submit" VALUE="Choose Different Month">
|
||||||
|
</FORM><br>
|
||||||
|
<FORM NAME="forum" ACTION="weblog-admin.pl" METHOD="POST">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="username" VALUE="$in{username}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="password" VALUE="$in{password}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="headerfile" VALUE="$headerfile">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="command" VALUE="displayThreads">
|
||||||
|
<INPUT TYPE="Submit" class="submit" VALUE="Edit This Month Again">
|
||||||
|
</FORM>
|
||||||
|
|
||||||
|
<FORM><br>
|
||||||
|
<INPUT TYPE="BUTTON" class="submit" VALUE="View Weblog" onClick="document.location.href='weblog.pl'">
|
||||||
|
</FORM><br><BR><small>Powered by PerlBlog</small><br><br></tr></table></td></tr></td></tr></table></div>
|
||||||
|
EOF
|
||||||
|
&printSooter;
|
||||||
|
}
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# deletes the messages that were selected in the &displayThreads page
|
||||||
|
sub deleteThreads {
|
||||||
|
&checkAccess;
|
||||||
|
&printHeader("");
|
||||||
|
$headerfile = $in{'headerfile'};
|
||||||
|
$todelete = $in{'todelete'};
|
||||||
|
@threads = split (/,/, $todelete);
|
||||||
|
|
||||||
|
open(HEADER,"$forumdir/$headerfile.txt");
|
||||||
|
@headerlines = <HEADER>;
|
||||||
|
close(HEADER);
|
||||||
|
|
||||||
|
open(HEADER,">$forumdir/$headerfile.txt");
|
||||||
|
for ($i=0; $i<@headerlines; $i++) {
|
||||||
|
$remove = "false";
|
||||||
|
for ($j=0; $j<@threads; $j++) {
|
||||||
|
if ($headerlines[$i] =~ /$threads[$j]_/) {
|
||||||
|
$remove = "true";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($remove eq "false") {print HEADER "$headerlines[$i]";}
|
||||||
|
}
|
||||||
|
close(HEADER);
|
||||||
|
|
||||||
|
open(ALL,"$forumdir/all.txt");
|
||||||
|
@headerlines = <ALL>;
|
||||||
|
close(ALL);
|
||||||
|
|
||||||
|
open(ALL,">$forumdir/all.txt");
|
||||||
|
for ($i=0; $i<@headerlines; $i++) {
|
||||||
|
$remove = "false";
|
||||||
|
for ($j=0; $j<@threads; $j++) {
|
||||||
|
if ($headerlines[$i] =~ /$threads[$j]_/) {
|
||||||
|
$remove = "true";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($remove eq "false") {print ALL "$headerlines[$i]";}
|
||||||
|
}
|
||||||
|
close(ALL);
|
||||||
|
|
||||||
|
foreach $thread (@threads) {
|
||||||
|
unlink ("$forumdir/messages/$thread.txt");
|
||||||
|
}
|
||||||
|
print <<"EOF";
|
||||||
|
<tr><td><table cellpadding="10" cellspacing="1" border="0" width="410" class="border"><tr><td colspan="0" bgcolor="white"><BR><table width="410" border="0" cellspacing="1" cellpadding="0" bordercolor="white"><table width="410" align="center" border="0" cellspacing="0" cellpadding="0"><h2>Deleting Entries | <A HREF="weblog.pl">Successful</A></h2><BR><BR><P>The following threads were removed:<BR>
|
||||||
|
EOF
|
||||||
|
foreach $thread (@threads) {
|
||||||
|
print "$thread,";
|
||||||
|
}
|
||||||
|
print <<"EOF";
|
||||||
|
<BR><BR>
|
||||||
|
<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="1"><TR>
|
||||||
|
<FORM NAME="forum" ACTION="weblog-admin.pl" METHOD="POST">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="username" VALUE="$in{username}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="password" VALUE="$in{password}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="command" VALUE="displayList">
|
||||||
|
<INPUT TYPE="Submit" class="submit" VALUE="Choose Different Month">
|
||||||
|
</FORM><br>
|
||||||
|
<FORM NAME="forum" ACTION="weblog-admin.pl" METHOD="POST">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="username" VALUE="$in{username}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="password" VALUE="$in{password}">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="headerfile" VALUE="$headerfile">
|
||||||
|
<INPUT TYPE="HIDDEN" NAME="command" VALUE="displayThreads">
|
||||||
|
<INPUT TYPE="Submit" class="submit" VALUE="Edit This Month Again">
|
||||||
|
</FORM><br>
|
||||||
|
<FORM>
|
||||||
|
<INPUT TYPE="BUTTON" class="submit" VALUE="View weblog" onClick="document.location.href='weblog.pl'">
|
||||||
|
</FORM><br><BR><small>Powered by PerlBlog</small><br><br></tr></table></td></tr></td></tr></table></div>
|
||||||
|
EOF
|
||||||
|
&printSooter;
|
||||||
|
}
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# common HTML header for all pages
|
||||||
|
sub printHeader {
|
||||||
|
my($title) = @_;
|
||||||
|
print "Content-type: text/html\n\n";
|
||||||
|
print "<html><meta http-equiv=\"Content-Type\" content='text/html; charset=$charset'><head>";
|
||||||
|
if ($cookieHash{'light'}){print '<link type="text/css" rel="stylesheet" href="white.css">';}
|
||||||
|
else {print '<link type="text/css" rel="stylesheet" href="black.css">';}
|
||||||
|
print <<"EOF";
|
||||||
|
<title>$blogtitle</title>
|
||||||
|
<meta name="description" content="$description" />
|
||||||
|
<meta name="keywords" content="$keywords" />
|
||||||
|
<meta name="author" content="$author" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
EOF
|
||||||
|
print "<span class=ftitle>$title</span>\n";
|
||||||
|
print "<P>\n";
|
||||||
|
}
|
||||||
|
##########################################################################
|
||||||
|
# common HTML footer for all pages
|
||||||
|
sub printFooter {
|
||||||
|
open FOOTER, "$forumdir/footer.txt"
|
||||||
|
or die "Can't open footer file because $!\n";
|
||||||
|
print while (<FOOTER>);
|
||||||
|
close FOOTER;
|
||||||
|
}
|
||||||
|
print "\n<br></body></html>\n\n";
|
38
weblog/last_5.pl
Normal file
38
weblog/last_5.pl
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
use CGI":standard";
|
||||||
|
require 'common.pl';
|
||||||
|
#parse cookies
|
||||||
|
my @cookieArray=split ("; ",$ENV{'HTTP_COOKIE'});
|
||||||
|
my $cookieName;my $cookieValue;my %cookieHash;
|
||||||
|
foreach (@cookieArray){
|
||||||
|
($cookieName,$cookieValue)=split("=",$_);
|
||||||
|
$cookieHash{$cookieName}=$cookieValue;
|
||||||
|
}
|
||||||
|
#parse GET input
|
||||||
|
if ($ENV{'QUERY_STRING'} ne '') {
|
||||||
|
@qstr = split (/=/,$ENV{'QUERY_STRING'});
|
||||||
|
$command = $qstr[0];
|
||||||
|
$value = $qstr[1];
|
||||||
|
$value =~ s/[\x00-\x20<>\|;\(\)\$^\+!\^\[\]\?\"\'\`]//g;
|
||||||
|
|
||||||
|
if ($command eq "random") {&randomPost;}
|
||||||
|
elsif ($command eq "write"){print redirect ('write.pl');}
|
||||||
|
else {&default;}
|
||||||
|
}
|
||||||
|
else {&default;}
|
||||||
|
#####SUBS
|
||||||
|
sub default{
|
||||||
|
&displaypost("temp.txt");
|
||||||
|
# &printHeader("Áëîã Àëåêñàíäðà ßêîâëåâà a.k.a. Oreolek");
|
||||||
|
# print "Ïîêà ïóñòî.\n<br>\n";
|
||||||
|
# &printFooter;
|
||||||
|
}
|
||||||
|
sub displaypost(){
|
||||||
|
$filename=shift;
|
||||||
|
open (MESSAGE,"$filename");
|
||||||
|
|
||||||
|
while (<MESSAGE>){
|
||||||
|
}
|
||||||
|
&printHeader("$title");
|
||||||
|
&printFooter;
|
||||||
|
}
|
47
weblog/post_message.pl
Normal file
47
weblog/post_message.pl
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
require 'common.pl';
|
||||||
|
#parse POST input
|
||||||
|
my $temp;my $pair;my %in;
|
||||||
|
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||||
|
my @pairs = split(/&/, $buffer);
|
||||||
|
foreach $pair (@pairs) {
|
||||||
|
local($name, $value) = split(/=/, $pair);
|
||||||
|
$value =~ tr/+/ /;
|
||||||
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
|
||||||
|
$value =~ s/<!--(.|\n)*-->//g;
|
||||||
|
$in{$name} = $value;
|
||||||
|
}
|
||||||
|
if ($in{'body'} eq ""){
|
||||||
|
&printHeader("Îøèáêà");
|
||||||
|
print "<h2 align=\"center\">òåëî ñîîáùåíèÿ íå ïåðåäàíî.</h2>";
|
||||||
|
&printFooter;
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
my $min;my $hour;my $mon;my $year;#reading date
|
||||||
|
(undef,$min,$hour,$mday,$mon,$year,undef,undef,undef) = localtime(time);
|
||||||
|
$year = 1900 + $year;$mon++;
|
||||||
|
if ($mon <10){$mon = "0$mon";}
|
||||||
|
if ($mday <10) {$mday = "0$mday";}
|
||||||
|
if ($hour<10) {$hour = "0$hour";}
|
||||||
|
if ($min<10) {$min = "0$min";}
|
||||||
|
my $title;if ($in{'title'} gt " "){$title=$in{'title'};}#parsing title
|
||||||
|
else {$title="$mday.$mon.$year, $hour:$min";}
|
||||||
|
open (TEMP,">weblog/temp.txt");#íåãîæå ñòîëüêî êá â ïàìÿòè õðàíèòü
|
||||||
|
print TEMP "$in{'body'}";
|
||||||
|
close(TEMP);
|
||||||
|
my $message = "messages/$year/$mon/$mday$hour$min.txt";
|
||||||
|
open (MESSAGE,">$message");
|
||||||
|
print MESSAGE "\<title\>$title\<\/title\>\n\<body\>\n";
|
||||||
|
open (TEMP,"temp.txt");
|
||||||
|
while (<TEMP>){
|
||||||
|
$temp=$_;
|
||||||
|
$temp =~ s/</[/g;
|
||||||
|
$temp =~ s/>/]/g;#BBCode
|
||||||
|
print MESSAGE "$temp<br>\n";#ñòðîêà çàêàí÷èâàåòñÿ \n,ýòî ìû ìåíÿåì íà <br>
|
||||||
|
}
|
||||||
|
close (TEMP);
|
||||||
|
print MESSAGE "\n</body>\n";
|
||||||
|
close (MESSAGE);
|
||||||
|
&printHeader("Îòïðàâêà óñïåøíà",1);
|
||||||
|
print "<h2 align=\"center\">Îòïðàâêà óñïåøíà.</h2>";
|
||||||
|
&printFooter();
|
2
weblog/temp.txt
Normal file
2
weblog/temp.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Привет тебе,о неизвестны!
|
||||||
|
Пышу тебе <b>Я</b>!!!
|
56
weblog/write.pl
Normal file
56
weblog/write.pl
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
require 'common.pl';
|
||||||
|
#parse POST input
|
||||||
|
my $temp;my $pair;my %in;
|
||||||
|
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||||
|
my @pairs = split(/&/, $buffer);
|
||||||
|
foreach $pair (@pairs) {
|
||||||
|
local($name, $value) = split(/=/, $pair);
|
||||||
|
$value =~ tr/+/ /;
|
||||||
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
|
||||||
|
$value =~ s/<!--(.|\n)*-->//g;
|
||||||
|
$in{$name} = $value;
|
||||||
|
}
|
||||||
|
if ($in{'username'}) {&writemessage;}#POST isn't empty,new message pending
|
||||||
|
else {&checkaccess;}
|
||||||
|
|
||||||
|
sub writemessage{
|
||||||
|
if ($in{'username'} eq "the master of universe" && $in{'password'} eq "the greatest man in the world"){
|
||||||
|
&printHeader("Íàïèñàòü íîâîå ñîîáùåíèå",1);
|
||||||
|
print <<"END";
|
||||||
|
<h2 align="center">Íàïèñàòü íîâîå ñîîáùåíèå</h2>
|
||||||
|
<FORM NAME="form" ACTION="post_message.pl" METHOD="POST">
|
||||||
|
Çàãîëîâîê ñîîáùåíèÿ (åñëè ïóñò,îí áóäåò çàìåíåí íà òåêóùóþ äàòó):
|
||||||
|
<p><input type="text" name="title" size="50" maxlength="225"></p>
|
||||||
|
Òåêñò ñîîáùåíèÿ:
|
||||||
|
<p><textarea cols="100" rows="15" name="body"></textarea></p>
|
||||||
|
<br><INPUT TYPE="Submit" class='submit' VALUE="Îòïðàâèòü â áëîã">
|
||||||
|
</form>
|
||||||
|
END
|
||||||
|
&printFooter;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
&printHeader("Íåâåðíûå ëîãèí è ïàðîëü",1);
|
||||||
|
print <<"END";
|
||||||
|
<h3 align="center">Íåâåðíûå ëîãèí èëè ïàðîëü</h3>
|
||||||
|
Òîò ëîãèí è ïàðîëü,÷òî âû ââåëè,îêàçàëèñü íåâåðíû.Âû íå ñìîæåòå íàïèñàòü ñîîáùåíèå â ýòîò äíåâíèê.Ñîæàëååì.
|
||||||
|
END
|
||||||
|
&printFooter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub checkaccess{
|
||||||
|
&printHeader("Ïðîâåðêà ïîëüçîâàòåëÿ",1);
|
||||||
|
print <<"END";
|
||||||
|
<h3 align="center">Íàïèñàòü íîâîå ñîîáùåíèå</h3>
|
||||||
|
<FORM NAME="forum" ACTION="?" METHOD="POST">
|
||||||
|
<table border=0><tr><td>Èìÿ ïîëüçîâàòåëÿ:</td>
|
||||||
|
<td><input type="text" name="username" size="35" maxlength="225"></td></tr>
|
||||||
|
<tr><td>Ïàðîëü:</td>
|
||||||
|
<td><input type="password" name="password" size="35" maxlength="225"></td></tr>
|
||||||
|
</table>
|
||||||
|
<input type="submit" value="Ïðîâåðèòü">
|
||||||
|
</form>
|
||||||
|
END
|
||||||
|
&printFooter();
|
||||||
|
}
|
Loading…
Reference in a new issue