LINUX.ORG.RU
Ответ на: комментарий от gaa

>> Уже можно бегать кругами по улице и кричать "Мы все умрёооооом!" ?

Можно. Ааааааа! Мы все умрёооооом!!!!

Deleted
()
Ответ на: комментарий от lazyklimm

> Реквестирую голосовалку в галерею

Блин, я галерею баш скриптом генерирую... лень и нет времени писать скрипт на пыхе. Впрочем, если кому не в лом - наваяйте скрипт, я поставлю. Если надо - там у меня мускуль есть.

LoGoPeD
()

Отстаньте вы уже от нашего ЭМО-генерала

gnomino
()
Ответ на: комментарий от Osmos

>а приз - встреча с деанонимизированным героем?

это только для сотой

lazyklimm ★★★★★
()
Ответ на: комментарий от Osmos

организовать не могу, ибо я в мск, а деанонимизированный в харькове. Как вариант можете взять пиво и отправиться туда отпаивать его после такого стресса. Я вот думаю, мож раз так простебали скинемся гиниратырю по пятаку на опохмел, чтобы не так обидно было?

LoGoPeD
()

Чёрт возьми, да кто же это делает?

ShprotX
()

Ладно, подводим итоги.
Собрано (89 аважаб + 8 постеров + 1 в хидер)=99 гипножаб.
http://invyl.ath.cx:8083/gen-o-gluk/ было по грепу апачевских логов запрошено 1013 раз. Страница на луркморе - сделано. Мемизация? Время покажет.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от lazyklimm

>> в жопу пых и мускуль - перлом в файлы можно, и всего делов

Фтопку перл!

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

cat | openssl base64 -d | tar -vxz

Фичи:
* Возможность голосования. Голосовать за одну картинку с одного
  IP можно только один раз.
* Автоматическая генерация тарболла при появлении новых картинок.
* Логика отделена от HTML-шаблонов, проще изменять дизайн.
* W3C-compliant =).

Недостатки:
* Нужно чтобы имена файлов были без пробелов и символов, недопустимых в URL.
* Подтормаживает малость.

Требования:
* POSIX-compliant shell.
* Стандартные утилиты: ls, grep, cut, sort и некоторые другие.

Deleted
()
Ответ на: комментарий от Deleted

Блин... Только сейчас вспомнил, что забыл добавить мьютекс на создание тарболла. Так что есть небольшая вероятность, что два процесса одновременно будут пытаться создать один и тот же файл. Сейчас исправлять влом, т.к. шесть утра, а я ещё не спал.

Deleted
()
Ответ на: комментарий от Deleted

Таки пофиксил + кое-что добавил:

--- cgi-bin/glukojaba-gallery.sh.old    2008-12-13 06:31:53.000000000 +0500
+++ cgi-bin/glukojaba-gallery.sh        2008-12-13 06:40:46.000000000 +0500
@@ -19,9 +19,13 @@
 # Path to data directory (for voting and tarball generation).
 DATA_DIR='/var/www/localhost/data/glukojaba-gallery'

+# Appearance.
 AVATARS_PER_LINE=5
 POSTERS_PER_LINE=1

+# Name of tarball.
+TARBALL_NAME='all.tar.gz'
+
 #******************************************************************************
#
 # CGI handler.
 #******************************************************************************
#
@@ -42,6 +46,12 @@
        return 0
 }

+# $1 - path.
+createDir()
+{
+       [ -d "${1}" ] || mkdir -p "${1}"
+}
+
 # $1 - type: 'a' = avatar, 'p' = poster.
 # $2 - image name.
 # stdout - total number of votes.
@@ -83,7 +93,7 @@

        [ -f "${IMG_REAL_DIR}/${dir}/${3}" ] || return 1

-       mkdir -p "${DATA_DIR}/${2}" 2> /dev/null
+       createDir "${DATA_DIR}/${2}"
        vote_file="${DATA_DIR}/${2}/${3}"
        vote_file_ips="${vote_file}.ips"
        vote_file_lock="${vote_file}.lock"
@@ -158,6 +168,11 @@
 if [ "${1}" = 'tarball' ]; then
        tarball="${DATA_DIR}/cache.tar.gz"
        tarball_ts="${tarball}.timestamp"
+       tarball_lock="${tarball}.lock"
+
+       createDir "${DATA_DIR}"
+
+       lockFile "${tarball_lock}"

        if [ -f "${tarball}" ]; then
                tarball_last_mod=$( cat "${tarball_ts}" )
@@ -174,8 +189,6 @@
        [ $files_last_mod -gt $tarball_last_mod ] && need_regen='yes'

        if [ -n "${need_regen}" ]; then
-               mkdir -p "${DATA_DIR}" 2> /dev/null
-
                rm "${tarball}" 2> /dev/null
                tar -czf "${tarball}" -C "${IMG_REAL_DIR}" \
                                "${AVATARS_DIR}" \
@@ -184,14 +197,17 @@
                echo -n "${files_last_mod}" > "${tarball_ts}"
        fi

+       unlockFile "${tarball_lock}"
+
        length=$(( $( stat -c '%s' "${tarball}" ) ))

-       echo 'Content-type: application/x-gzip'
+       echo 'Content-Type: application/x-gzip'
        echo "Content-Length: ${length}"
+       echo "Content-Disposition: attachment; filename=${TARBALL_NAME}"
        echo
        cat "${tarball}"
 else
-       echo 'Content-type: text/html; charset=utf-8'
+       echo 'Content-Type: text/html; charset=utf-8'
        echo

        VOTE_RESULT=''

Deleted
()
Ответ на: комментарий от Deleted

Я ИДИОТ! Забыл приложить шаблоны...

Вот полный вариант последней версии (т.е. патч не нужен):

H4sICMIYQ0kAA0t6MkhwYS50YXIA7Rtrb9tGMl+lX7Gm3SpuQomUZDuwLQeOraQG
nMSw1fSKXiHQ5EpiQ5EsufIjiYG0weEK3OGKA/rhcMAB9+W+HnJpjb4S9y9I/+hm
dpcSqYcdp7Zyh2gNW+ZydmZ23hyuzLqt7tpu7solDg3GwtwcfuoLc1r8MxpXdF3P
a/N6UZ+HeV3XCvkrZO4ymYpGK2RGQMgVe89wT4M76/7/6TCl/utO66H3ubFrqHXD
cWhwmA0bF0XjdP3roPSFrv7zeR30X1yYX7hCtIti4LTxjut/eiqH6g8b6fT0Bxc6
ptPTZM1za3a9FRjM9tzsxVMAElsGa4SEecRuGnUaZtMbd+9Ut8urm9X1je1SJrdn
BLn9/f2c45mG0/BClmswyzPDQYvP8KUfl2/JlUMA0qsPViur2zsCQlDMpLfu71TK
0aQPJGgAs+nN+3fulzKsdZD93K9nIl6R1Q8rdzcJo03fMRiyXNkazW0XbCg/PZyW
wQxi2QE1mRcckqs1LyB7HrPdOjFci4CR78IqUqcuFeqYzabXYTMjCSPCETRXfZ8a
geGaNNuVyFZ5u7q5ca9cmuvKozul46J7RpMSrxZxArte3b61urlZvbd6t1zK4BTc
ytYfZS7HFO9skAZIAjZxOYY4oxOVgPgekprtUOLCdrNpvL4Nl1dn04/TqZbLbIdc
JSFlRF1bItRseER1ifI7hawQZeaxfqSQWZJfITmL7uXcluMsEctLp1IsaNGldMry
XJo+Gkmt5SbpBU2JNA3/U9YKXKLFlvtgOtm0GVAwr3U7EGs+JaoVsfIZefKENB+C
VRHVj1D11rNDny6SjJEhJWLsgbkE10nGxyvhBFkEzAMgdxTJ4zQJwf9aDNd7zHCI
22ru0gAtA8wVvaFO2baBhisYwtkqbrIEDEQWe5RDZuBPHjhK2TUCbNeQwy40sr9E
WIO6IL7ubBUFVErAZXEKkKQi2SXQ8AVII2UarI8ATPYkPnwVdUIKYJGiM1omnarZ
MRnaLsi/SV0Ggmyh6K7pIEQL/1P1rgBfS9KFAUmDzk3PojCvAWjYMk0ahteJDhe2
u2c4tiUWXCd5ROyAJViHXA0WqQVeE8Rnh2RjK5s2LOsBTAuNmEZIIxOxUbzA+Sx8
pHAz4Oyp1NISzlqxWTWapqFh9lDkuygMAQy2huqJxVkuZ4HQT8DEwm4XhmPnRsyt
IZ4L0FpgJX4UItuWTgHxKdV1A9JnZtzCRhphXuKLgVRtP+wzMZhJQIy0wvTpVvga
pl4PqE/UL24fIMh2+e79Srm6ur4OIkpiBJZg6v33ye9RpGcYMsJJWeXT0p/C0sxV
MugUZDZ2/6rwaXKN2zmZnY35gjLD78nIl3QrDjPA/8rKkC0M+BiAILGj8yAeihf8
NH2Wgw+Nq8zYBfBBnw2TTguhzg9sl1UQXHhWZfXWZrla+WSrXJLRdoizne4pKZ8G
Vcd2aWmmPzW/ph/FMPRn8qSXOXbI0AicEGLVKHdTyBOy30D5YXSBeFOvYniSeW17
tbJx7w4i6UZ9RNSTA6wHfcpFR9y4ArpXDTgotzBV4IgZFyDowRzBegFxFMekiGQK
zIVewNBuYDnwv1O999HdW+VtjhrYihDiXsVeTKI6kKSRXDqV5dxuyR1zxav4QMGy
DdZ04BkKTWQYUODt9wOm3JIGf2r4d5BsT4Q4x/UzIMOYC3SB+GoT861FMvADsSPP
xRiJ4hwLCyqshKWo563VyoclqXNZM8cibFzOQ/fP845qQ3UblxSIAOXuQsDQhUJB
HHym1pviIXDGJSr9gsxEtgrxHGIUztdgI5TMxHQZi45CxsNZQpVQ14opZDRcv+ow
WIjq7PVQDwdLgEA84TuVvl8iGVk5Z3r7kTPJpGQaZoPKWlrpwlQZT0ry6ijL7CaF
XTT9GEiUlrpAUVIanhz701UcTX+yilDGU1UX3gCTa3pWLKH0mBYZRcb4gRVYVvA4
jUE5jGPi3gsbBPs1Sea9TzLDAlQieEqndpqvuzoROOVqsECnSdQ6IzNJloSB9rPp
NM9DEJ8ofwMlvqYPlq/vF6vA4FJqVQMKT4ylzCE+50YK5XGidzehU/HI0dN2/FlG
KBA2+KjPJNS1gd0qsi7pz3C96aT0u9NSRn10YwEuKYAo+8cNbmjqHzBuh7p11hhU
XZhJbo5rS0b0zJrnMij21QovDgzfd2yTP43nDtT6I9vPRKE/AtzkVBYhdQl6vOBJ
QKzbIdQTNiIBjIyB9+PzxBK3ABHgH8cftSMM6VTS12BeeNkwThk9wMZJE55HzQZU
MpSVWqym3pD8wv4eYD21Xd75aLNSymSkqfRiF1ZOscCVkg8U0TOAIopy+CjylBHH
NnNTKiQZMhuQC+HJJxZSe9UUll3Jaz8zgKDmeSyOAGm87Xbc2Idshl0qjXP1/4tF
3v/XtUn/fxxjVDP0Ii3iPPrPF+aw/1/U5ib6H8cYqX/R3L4QMziX/ot50P/c/NzE
/8cyRupf9iguwgDOp/8F0P+8ri1M9D+OMVL/ITt0aNYMw99OAxU8j3l9uP4h2c/1
vf+dRzOYvP8dw8DqlzyGAhvKfTW0H0Gtr2s+W8L2g3+dNHT4zcNvAX6L8DuHwPg0
oBqOXYcnDhMeEmjA4QUgAux6AdTm6q7HmNdU920LH2F0/0CCDYJwa1skoefYlgCK
42Gen0CSuCGXWkbYoLB2OOLoLmLmWzA9xwsWSSAnRcu2RxFuO4YfwsroP8DcNIK6
DVvWiNFinlhn9RZx5sQWyPR6AX+WSO4DsmnXG+xOYBySD3LDZZfy4XHIduuLpAgY
Yr+C4QBpNCiikQJIRdLQtPeWevQ1/N8wH9YDr+VaqtzjrgNTHNO049W9UxT4to1x
MsY+escLLo/GufK/hvFfn9OLk/w/jnHK8ZILs4jz639Onzz/j2ecpv+BlxJvSOOM
+k/TC331X17LFwuT+m8cI3b+D9vBy8ukfP92Or0slL8C//kr6VT77+2T9i/tHzt/
bB93vux81X7RPlkky7srvGsfvWc7Ws7trsBSWJHmWN725ibjzHG2/w++qT0vjbP8
v5gv9Pk/JICJ/49ljPJ/ZoHbcwfvvsrn3g1zAQaEf7aP2z9BIPix/ar93WLsjMWn
ywZpBLSG75F31rY3tirirdNNfAN0zbqWONxxLX5SYEXVl3PGCnlCTkXROg3FNY7i
s4jNZbhFwsCMDirgoYUjhRgOw5nYOgx4lgxbb1slYx2n+X/yDdub0zjD//P6wnxf
/2dhftL/Gc8Y5f9T6/fX0L/EWfWtj25tbqwRRc3lPi6s5XLrlXVxo5jV9FyufE8h
SoMxfzGHh8iz+4WsF9RzlW3+yriYC1lgmyxrMQs9jbecHMOtl5SgpaCXoqHBZ2q5
SRm4PiBS6Rcte6+kxN9CK8QUVyVl1Oto5XQsm0C0BdksholzgIuYzaDekcfjgXv0
hlqNfIiH5r0aqUGcgBjBgTi8Y7sPSUCdksJbTGGDUqbwQ3+SPTMMlS53imCvG9YS
p6a6rVYujJyUxvKuZx0KWo38SqVByQBzNccIG01vVzX2DOLDxmBxXiyx7D1iWyUF
Oz5cKgOxMHZoS56Z4GFxM1qwnAMckn5xpf1t+zlUfa86f2q/VNvfi4v2yXXSfkH4
5S+QEH6GCvEPavKSOF6gQqLA+vHnzpft5zDVeQpl5NeQO6CkJJ1ngAqBT/ATKswf
O191/kzg7svON6T9Hcw9bZ90vslms7C9ouDIF1sakSfkiQZlpf0DZxQxvEK87WMV
CD0n7ZdwfQy8A0PHU1NTOk8bfNOAmXtA7KhL7DBC/KyLOCex3JhbychjmjMxSHFY
U+MHLQVk+x/AzEsClJ9DDf0U/vJ9vkJ+XsDV18gRZwyZbR9fx3snnMnOX1FmUuYE
mP4VcQDQfxDgB8TwHZfwSefLqUx0zlOPES9vgf/eXt3YXCQghudc3D8RFEbnqUzj
oC6keAxsPeshyQ9HAsu/x1UxwsCXmAYecZZsbHXRiFPfUmI5LrJ38rjF/9w4u/7v
O7v4BjTOqv+1gt5f/2uT5//xjFj+j7yTBeCdE9d8N8bZ/p846vxGNM7y/8J8v/9r
84WJ/49lDPp/owDuH33rJPFFDKxo5LdPZEXzb6g9sLj6FUoBKB+gkoKEj/lefsVE
gn2L5QEvO17wou/kJmn/C+awm/g11kC/SgBe6mFFKYoimPsLETeg8nwGq/4G1aNo
QcKyzjOsl/DWN5IuLzO6VQZuJLoS7cxJXOsfr5f/f1sMODv/a/35vwglwcT/xzAG
/X+S/t+lcZr/Jw/IvzmNs/x/fl7r7/8t6BP/H8sY0f/Dpk8wtNUi23z82+PYi4qa
fWaDmg9vtgK7BGA0oIHoOsXaToMNwg3Tc0OBSuWdQk3n37qDwXtRD/hX1LuNRrLD
+4gKEWehSkpBVwg/CVVSbtyQXS7Rxxng93O7HhpdwmYYqt0d5BKcYi+upMgTVdqS
OGh144Z/sCRPYBV0/yDiMr6v0yjIw9R72OMb3ODazs5UgnvehYK/ogO4zDud7+LL
icmYjMmYjMm4tPFfFEmLjQBQAAA=

cat | openssl base64 -d | tar -vxz

Deleted
()
Ответ на: комментарий от AiFiLTr0

Небольшой секьюрити фикс:

--- glukojaba-gallery.sh.old    2008-12-13 17:02:19.000000000 +0500
+++ glukojaba-gallery.sh        2008-12-13 17:05:39.000000000 +0500
@@ -212,7 +212,8 @@

        VOTE_RESULT=''
        if [ "${1}" = 'vote' ]; then
-               addVote "${2}" "${3}" "${4}"
+               img_name=$( echo -n "${4}" | tr -d '/\\*?~' )
+               addVote "${2}" "${3}" "${img_name}"
                VOTE_RESULT=$?
        fi

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.