Життя у світі Вікі/Роботи: відмінності між версіями

Вилучено вміст Додано вміст
Bunyk (обговорення | внесок)
Atoly (обговорення | внесок)
Немає опису редагування
Рядок 41:
 
Після запуску бот попросить нас пароль від свого аккаунта і опис для редагувань які він здійснюватиме. Напишемо там наприклад "прибираємо зайві теги <nowiki><nowiki/></nowiki>".
 
=== Генерація тексту сторінок з .csv ===
Якщо у вас є структуровані дані в табличному форматі (екселі), то підставляючи їх в шаблонний текст можна сформувати текст стабів. Нижче розглянемо на прикладі природно-заповідного фонду, як це працює.
<source lang="python">
# -*- coding: utf-8 -*-
# створення статей стабів ПЗФ
#
 
import csv
 
# Функція для зчитування csv-файла
def encoded_csv_reader_to_unicode(
encoded_csv_data,
coding='utf-8',
dialect=csv.excel,
**kwargs
):
csv_reader = csv.reader(
encoded_csv_data,
dialect=dialect,
**kwargs
)
for row in csv_reader:
yield [unicode(cell, coding) for cell in row]
 
def main():
reader = encoded_csv_reader_to_unicode(open('yourtable.csv', 'rb'), delimiter=';') # yourtable.csv — назва вашої таблиці
is_header = True
field_names = []
for fields in reader:
if is_header:
field_names = fields
is_header = False
else:
fields = fields + [''] * (len(field_names) - len(fields))
print article_text(dict(zip(field_names, fields))).encode('utf-8')
 
# наступна функція перевіряє параметр {{{де саме розміщ.}}}, і якщо в ньому є дані, створює змінну {{{кома перед розміщ}}} з комою та пробілом
def article_text(variables):
variables[u'кома перед розміщ'] = ', ' if variables[u'де саме розміщ.'] else ''
text = u"""start
'''{{{Назва статті}}}'''
{{Природоохоронна територія
| назва = {{{Власне назва об'єкта ПЗФ}}}
| категорія МСОП =
| зображення = {{{Зображення на Сховищі}}}
| зображення_підпис = {{{Підпис до зображення}}}
| ширина_зображення = 300px
| мапа =
| підпис =
| ширина_мапи =
| локатор_x =
| локатор_y =
| розташування = [[Україна]],<br/>[[Закарпатська область]],<br/> [[{{{Район}}} район]]
| найближче_місто =
|lat_degrees = {{{Коорд1}}} | lat_minutes = {{{Коорд2}}} | lat_seconds = {{{Коорд3}}} | lat_direction = N
|long_degrees = {{{Коорд4}}} | long_minutes = {{{Коорд5}}} | long_seconds = {{{Коорд6}}} | long_direction = E
| площа = {{{Площа}}}
| водні об'єкти =
| заснований = {{{Рік}}}
| число_відвідувачів =
| рік_відвідувачів =
| керуюча_організація = {{{Керуюча орг.}}}
| Карта розташування = Україна Закарпатська область
}}
 
'''{{{Власне назва об'єкта ПЗФ}}}'''&nbsp;— [[{{{тип}}}]] {{{значення}}}. Об'єкт розташований на території [[{{{Район}}} район|{{{Району}}} району]] [[Закарпатська область|Закарпатської області]]{{{кома перед розміщ}}}{{{де саме розміщ.}}}.
 
Площа&nbsp;— {{{Площа}}} га, статус отриманий у {{{Рік}}} році.
 
== Примітки ==
{{reflist}}
 
== Джерела ==
* {{Список ОПЗФ України}}
 
{{Природно-заповідний фонд {{{Тип у множині}}} району}}
{{Ukraine-geo-stub}}
[[Категорія:Тип у множині Закарпатської області]]
[[Категорія:Природоохоронні об'єкти, засновані {{{Рік}}}]]
end
 
"""
for k, v in variables.items():
text = text.replace(u'{{{%s}}}' % k, v)
return text
 
if __name__ == '__main__':
main()
</source>
 
Дані беруться з .csv таблиці на зразок:
 
{| class="wikitable"
|-
! !! A !! B !! C !! D !! E !! F !! G !! H !! I !! G !! K !! L !! M !! N !! O !! P !! Q !! R !! S
|-
! 1
| Назва статті || Власне назва об'єкта ПЗФ || Зображення на Сховищі || Підпис до зображення || Район || Району || Коорд1 || Коорд2 || Коорд3 || Коорд4 || Коорд5 || Коорд6 || Площа || Рік || Керуюча орг. || тип || Тип у множині || значення || де саме розміщ.
|-
! 2
| Новоіванівський (ботанічна пам'ятка природи) || Новоіванівський || Вид на Новоіванівський ботаничний заказнік.jpg || || Арцизький || Арцизького || 45 || 55 || 35 || 29 || 04 || 40 || 02 || 1993 || ДП «Ізмаїльське лісове господарство» || Ботанічна пам'ятка природи || Ботанічні пам'ятки природи || місцевого значення || с. Новоїванівка, Новоіванівське лісництво
|-
! 3
| Суворівський (ботанічна пам'ятка природи) || Суворівський || Охоронна табличка при закритій елітній школі для єврейської общини.jpg || || Одеса || Одеси || || || || || || || 1 || 1993 || Приватна ЗОШ «Еліта» І-ІІІ ступеню || Ботанічна пам'ятка природи || Ботанічні пам'ятки природи || місцевого значення || вул. Героїв Сталінграду, 92а
|-
! 4
| ... || || || || || || || || || || || || || || || || || ||
|}
 
Для перетворення нашої таблиці необхідно виконати в терміналі (командній строчці) наступну команду:
 
<pre>
python yourscript.py > pages.txt
</pre>
 
=== Масове створення сторінок ===