Browse Source

Add encyimport.sh: Import automatically articles given on stdin.

primary
Pauline Emily 4 years ago
parent
commit
ab9da55be3
1 changed files with 48 additions and 0 deletions
  1. +48
    -0
      encyimport.sh

+ 48
- 0
encyimport.sh View File

@@ -0,0 +1,48 @@
#! /bin/sh
# Importuje artykuły z Micropedii i SclaviniaWiki z listy podanej na
# standardowym wejściu.
# Copyright © 2017 Paulina Laura Emilia <vilene@posteo.net>
#
# This program is free software. It comes without any warranty, to
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, Version 2, as published by Sam Hocevar. See the
# COPYING file for more details.
set -C

# Sprawdź czy skrypt mediawiki2ency.sh jest w ścieżce wyszukiwania lub
# w bieżącym katalogu.
if ! mediawiki2ency=$(PATH=$PATH:. command -v "mediawiki2ency.sh"); then
printf '%s: %s %s\n' "$0" 'Nie znaleziono skryptu mediawiki2ency.sh w' \
'bieżącym katalogu bądź ścieżce wyszukiwania.' >&2
exit 1
fi

# Wybierz prefiks URL-a stron w zależności od źródła.
case $1 in
--sclavinia)
prefix=http://vonthorn.sarmacja.org/wiki/index.php/
;;
*)
prefix=http://micropedia.wikia.com/wiki/
esac

# Czytaj listę ze standardowego wejścia.
while IFS= read -r name; do
urlname=$(printf '%s\n' "$name" | sed -e 's/ /_/g')
filename=Encyklopedia::$urlname.txt

if [ -e "$filename" ]; then
printf '%s: %s: %s\n' "$0" "$filename" 'Plik już istnieje.' >&2
continue
fi

if ! curl -fso "$filename.tmp" "$prefix$urlname?action=raw"; then
printf '%s: %s: %s\n' "$0" "$name" \
'Nie udało się pobrać artykułu.' >&2
continue
fi

"$mediawiki2ency" "$@" "$filename.tmp" "$name" > "$filename"
rm -f "$filename.tmp"
done

Loading…
Cancel
Save