Commit 37b8208b authored by Matthieu Boileau's avatar Matthieu Boileau

Convert get_attached_files.sh into python

Fix #20
parent d55b3739
# Conversion du site Spip <calcul.math.cnrs.fr> en site Pelican
# Conversion d'un site Spip en site Pelican
## Dépendances
- `wget`
- `python3`
- paquets python listés dans `requirements.txt` à installer avec :
```bash
pip install -r requirements.txt
```
## Utilisation
### 1. Récupérer les fichiers joints
Ce script aspire les répertoires `IMG/` et `Documents/` du site Spip pour récupérer les fichiers qui ne sont pas des pages web :
Le script suivant aspire les répertoires `IMG/` et `Documents/` du site Spip pour récupérer les fichiers qui ne sont pas des pages web :
```
./get_attached_files.sh
python3 get_attached_files.py
```
Les fichiers récupérés sont dans `attachments/spip/`.
Les fichiers récupérés sont dans `attachments/spip/`
### 2. Exporter certaines tables de la base de données spip
### 2. Exporter certaines tables de la base de données Spip
1. Se connecter à la base mysql du site spip avec phpmyadmin
2. Exporter la table globale du site en format `yaml`, par exemple dans le fichier `spip_site.yml`
......
#!/usr/bin/env python3
"""
Retrieve attached files from current Spip website
"""
import os
from ruamel.yaml import YAML
import shutil
import subprocess
yaml = YAML(typ='safe')
DOWNLOAD_DIR = os.path.join("attachments", "spip")
if __name__ == '__main__':
config_filename = "config.yml"
with open(config_filename, 'r') as ymlfile:
cfg = yaml.load(ymlfile)
url = cfg['site_url']
if os.path.exists(DOWNLOAD_DIR):
shutil.rmtree(DOWNLOAD_DIR)
os.makedirs(DOWNLOAD_DIR)
for directory in "IMG", "Documents":
dest_dir = os.path.join(DOWNLOAD_DIR, directory)
print(f"Downloading {directory} to {dest_dir}")
cmd = f"""wget --quiet --show-progress \
--no-parent --recursive \
--reject "index.html*" \
--directory-prefix={DOWNLOAD_DIR} \
--no-host-directories \
--execute robots=off \
--continue \
{url}/{directory}/"""
subprocess.run(cmd.split())
#!/bin/bash
URL="http://calcul.math.cnrs.fr"
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DOWNLOADDIR=$SCRIPTDIR/attachments/spip
mkdir -p $DOWNLOADDIR
# Attached files are either in ./IMG/ or in ./Documents/
for dir in IMG Documents
do
DESTDIR=$DOWNLOADDIR/$dir
echo "Downloading $dir to $DESTDIR"
rm -rf $DESTIR
wget --quiet --show-progress \
--no-parent --recursive \
--reject "index.html*" \
--directory-prefix=$DOWNLOADDIR \
--no-host-directories \
--execute robots=off \
--continue \
$URL/$dir/
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment