Difference between revisions of "User talk:Rung"

From Baka-Tsuki
Jump to navigation Jump to search
(скрипт обработки номеров страниц)
Line 4: Line 4:
 
Для уже имеющихся в вики страниц несложно сообразить скриптик на Питоне, меняющий номер на коммент... Может, этим займусь.
 
Для уже имеющихся в вики страниц несложно сообразить скриптик на Питоне, меняющий номер на коммент... Может, этим займусь.
 
[[User:Const2k|Const2k]] 10:23, 2 July 2008 (PDT)
 
[[User:Const2k|Const2k]] 10:23, 2 July 2008 (PDT)
  +
----
 
 
Сделай, плиз, ещё:<br/>
 
Сделай, плиз, ещё:<br/>
 
-замену знака возврата каретки без цифры тегом br,<br/>
 
-замену знака возврата каретки без цифры тегом br,<br/>
 
-аналогичне с цифрой пустым абзацем, а цифру в тег.
 
-аналогичне с цифрой пустым абзацем, а цифру в тег.
 
--[[User:Rung|Rung]] 11:46, 2 July 2008 (PDT)
 
--[[User:Rung|Rung]] 11:46, 2 July 2008 (PDT)
  +
----
  +
Я не совсем понял ТЗ, поэтому сделал только замену номера страницы на номер в тэге...
  +
  +
'''Код отсюда не копировать!!! Копировать только из режима редактирования!'''
  +
  +
'''Don't copy code below!!! Copy from "edit" page only - they're DIFFERENT!'''
  +
import codecs, glob
  +
files = glob.glob('Fate?.txt') # files to be processed, * and ? can be used
  +
files.sort()
  +
for file in files:
  +
test = open(file, 'rb')
  +
ident = test.readline()
  +
if ident.startswith('\xFF\xFE'): format = 'UTF-16'
  +
elif ident.startswith('\xFE\xFF'): format = 'UTF_16_BE'
  +
else: format = 'CP1251'
  +
del test, ident
  +
raw = codecs.open(file, 'r', format)
  +
res = codecs.open('HTML'+file, 'w', format)
  +
print (file+' ('+format+') ... '),
  +
for line in raw:
  +
try:
  +
if int(line) >= 0: line = '<!--*page'+str(int(line))+'|-->\r\n'
  +
except: pass
  +
res.write(line)
  +
res.close()
  +
raw.close()
  +
print 'OK'
  +
  +
^^^ Это дело ^^^ надо сохранить в *.py-файл в одном каталоге со скриптами. Скрипты должны быть либо в Юникоде ('''Блокнот'''овый UTF-16, но не UTF-8), либо в русской кодировке ('''Блокнот'''овый "ANSI", он же Win-1251 для русских ОС). Их имена задаются маской во второй строчке ("files = ..."), как в консоли (? = любой символ, * = любое число любых символов). Пример рассчитан на файлы с именами Fate1.txt, Fate2.txt и т.д. до Fate9.txt
  +
Полученные файлы сохраняются в том же каталоге под именами HTML<оригинальное_имя_файла> в оригинальном формате, т.е. HTMLFate1.txt, HTMLFate2.txt и т.д.
  +
  +
Насчет возвратов каретки нужно уточнение... Желательно, в виде "если ... то ..." Пойдет и пример (куска) страницы в желаемом виде.
  +
  +
А то я "возврат каретки" себе ещё представляю, а вот "с цифрой" - уже сложно... x_x [[User:Const2k|Const2k]] 10:46, 8 July 2008 (PDT)

Revision as of 19:46, 8 July 2008

Номера страниц в тексте FSN

Идея с номерами страниц хорошая, но в вики номера делают текст слабо читаемым. Поэтому предлагаю номера страниц писать в тексте HTML-комментами. (!) Для уже имеющихся в вики страниц несложно сообразить скриптик на Питоне, меняющий номер на коммент... Может, этим займусь. Const2k 10:23, 2 July 2008 (PDT)


Сделай, плиз, ещё:
-замену знака возврата каретки без цифры тегом br,
-аналогичне с цифрой пустым абзацем, а цифру в тег. --Rung 11:46, 2 July 2008 (PDT)


Я не совсем понял ТЗ, поэтому сделал только замену номера страницы на номер в тэге...

Код отсюда не копировать!!! Копировать только из режима редактирования!

Don't copy code below!!! Copy from "edit" page only - they're DIFFERENT!

import codecs, glob
files = glob.glob('Fate?.txt') # files to be processed, * and ? can be used
files.sort()
for file in files:
    test = open(file, 'rb')
    ident = test.readline()
    if ident.startswith('\xFF\xFE'): format = 'UTF-16'
    elif ident.startswith('\xFE\xFF'): format = 'UTF_16_BE'
    else: format = 'CP1251'
    del test, ident
    raw = codecs.open(file, 'r', format)
    res = codecs.open('HTML'+file, 'w', format)
    print (file+' ('+format+') ... '),
    for line in raw:
        try:
            if int(line) >= 0: line = '\r\n'
        except: pass
        res.write(line)
    res.close()
    raw.close()
    print 'OK'

^^^ Это дело ^^^ надо сохранить в *.py-файл в одном каталоге со скриптами. Скрипты должны быть либо в Юникоде (Блокнотовый UTF-16, но не UTF-8), либо в русской кодировке (Блокнотовый "ANSI", он же Win-1251 для русских ОС). Их имена задаются маской во второй строчке ("files = ..."), как в консоли (? = любой символ, * = любое число любых символов). Пример рассчитан на файлы с именами Fate1.txt, Fate2.txt и т.д. до Fate9.txt Полученные файлы сохраняются в том же каталоге под именами HTML<оригинальное_имя_файла> в оригинальном формате, т.е. HTMLFate1.txt, HTMLFate2.txt и т.д.

Насчет возвратов каретки нужно уточнение... Желательно, в виде "если ... то ..." Пойдет и пример (куска) страницы в желаемом виде.

А то я "возврат каретки" себе ещё представляю, а вот "с цифрой" - уже сложно... x_x Const2k 10:46, 8 July 2008 (PDT)