2026-01-17 02:38:39 +01:00
2026-01-17 02:38:39 +01:00
2026-01-17 02:38:39 +01:00
2026-01-17 02:38:39 +01:00

bibfetch

Prosty skrypt do automatycznego pobierania plików PDF z bibliografii (references.bib).

Obsługuje:

  • Bezpośrednie linki do PDF
  • ArXiv
  • DOI (z przekierowaniami)
  • IEEE Xplore (wyciąganie PDF z ramek/stron HTML)

Wymagania

Zainstaluj potrzebne biblioteki jedną komendą (wymagana starsza wersja bibtexparser):

pip install "bibtexparser<2.0" requests beautifulsoup4

Użycie

Wejdź do katalogu ze swoją pracą (tam gdzie masz references.bib) i uruchom skrypt:

python3 bibfetch.py .

Skrypt utworzy folder references/ i pobierze tam brakujące pliki, nazywając je zgodnie z kluczem cytowania (np. Kowalski2023.pdf).


Instalacja globalna (Opcjonalnie)

Wybierz jedną z dwóch metod, aby używać komendy bibfetch w całym systemie.

Dobra, jeśli masz biblioteki zainstalowane w głównym Pythonie systemowym.

  1. Nadaj uprawnienia: chmod +x bibfetch.py
  2. Zrób link (zastąp ścieżkę swoją):
sudo ln -s /pełna/ścieżka/do/bibfetch.py /usr/local/bin/bibfetch

  1. Gotowe. Użycie: bibfetch .

Opcja B: Bezpieczna (Dedykowany Venv)

Dobra, jeśli chcesz trzymać biblioteki w izolacji.

Krok 1: Stwórz środowisko

# Tworzymy venv
mkdir -p ~/venvs
python3 -m venv ~/venvs/bibfetch

# Instalujemy zależności (wersja <2.0 jest kluczowa!)
~/venvs/bibfetch/bin/pip install "bibtexparser<2.0" requests beautifulsoup4

Krok 2: Utwórz wrapper

Zamiast linkować plik bezpośrednio, tworzymy skrypt pomocniczy.

  1. Edytuj plik: sudo nano /usr/local/bin/bibfetch
  2. Wklej poniższą treść (podmień ścieżki na swoje!):
#!/usr/bin/env bash
set -euo pipefail

# Ścieżki (dostosuj do siebie)
VENV_PYTHON="$HOME/venvs/bibfetch/bin/python"
SCRIPT_PATH="$HOME/projekty/scripts/bibfetch.py"

exec "$VENV_PYTHON" "$SCRIPT_PATH" "$@"

Krok 3: Nadaj uprawnienia

sudo chmod +x /usr/local/bin/bibfetch

Teraz możesz wpisać bibfetch . w dowolnym katalogu.

Licencja

MIT

Description
A Python script to automatically download PDFs from a references.bib file.
Readme 30 KiB
Languages
Python 100%