All Projects → r-xue → ads2bibdesk

r-xue / ads2bibdesk

Licence: GPL-3.0 license
ads2bibdesk helps you add astrophysics articles listed on NASA/ADS to your BibDesk database using the new ADS Developer API

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
applescript
352 projects

Projects that are alternatives of or similar to ads2bibdesk

nom-bibtex
A feature complete bibtex parser using nom
Stars: ✭ 13 (-59.37%)
Mutual labels:  latex, bibtex
Rebiber
A simple tool to update bib entries with their official information (e.g., DBLP or the ACL anthology).
Stars: ✭ 1,005 (+3040.63%)
Mutual labels:  latex, bibtex
bibtex-js
Library for parsing .bib files, used in Bibliography.js 📚
Stars: ✭ 55 (+71.88%)
Mutual labels:  latex, bibtex
Betterbib
Update BibTeX files with info from online resources.
Stars: ✭ 380 (+1087.5%)
Mutual labels:  latex, bibtex
Scihub2pdf
Downloads pdfs via a DOI number, article title or a bibtex file, using the database of libgen(sci-hub) , arxiv
Stars: ✭ 120 (+275%)
Mutual labels:  latex, bibtex
snipmate-snippets-bib
Snipmate.vim support for BibTeX files
Stars: ✭ 13 (-59.37%)
Mutual labels:  latex, bibtex
Fiduswriter
Fidus Writer is an online collaborative editor for academics.
Stars: ✭ 405 (+1165.63%)
Mutual labels:  latex, bibtex
pandoc alfred
Pandoc-Suite for Academic Writing in Markdown
Stars: ✭ 68 (+112.5%)
Mutual labels:  bibtex, bibdesk
rfc-bibtex
A command line tool that creates bibtex entries for IETF RFCs and Internet Drafts.
Stars: ✭ 43 (+34.38%)
Mutual labels:  latex, bibtex
Docker Texlive
A docker container containing an installation of texlive as well as several useful scripts.
Stars: ✭ 52 (+62.5%)
Mutual labels:  latex, bibtex
Bibsearch
Download, manage, and search a BibTeX database.
Stars: ✭ 52 (+62.5%)
Mutual labels:  latex, bibtex
Jabref
Graphical Java application for managing BibTeX and biblatex (.bib) databases
Stars: ✭ 2,385 (+7353.13%)
Mutual labels:  latex, bibtex
Zotero Better Bibtex
Make Zotero effective for us LaTeX holdouts
Stars: ✭ 2,336 (+7200%)
Mutual labels:  latex, bibtex
academic-cv-publications
Generate a customised list of publications for your LaTeX CV using BibTeX entries.
Stars: ✭ 60 (+87.5%)
Mutual labels:  latex, bibtex
PS-FCN Poster LaTex
LaTex Poster for PS-FCN (ECCV 2018)
Stars: ✭ 41 (+28.13%)
Mutual labels:  latex
LaTeX-Note-Importer-for-Anki
Add-on for the memory training program Anki, allowing to import and export notes written in LaTeX.
Stars: ✭ 26 (-18.75%)
Mutual labels:  latex
zotero-texmacs-integration
Integration of the Juris-M or Zotero reference manager with TeXmacs for using CSL citation styles in documents.
Stars: ✭ 17 (-46.87%)
Mutual labels:  latex
TUMGAD
Exercise generator and helpful materials for the Introduction to Algorithms and Data Structures 📚
Stars: ✭ 27 (-15.62%)
Mutual labels:  latex
typora-latex-theme
将Typora伪装成LaTeX的中文样式主题,本科生轻量级课程论文撰写的好帮手。This is a theme disguising Typora into Chinese LaTeX style.
Stars: ✭ 2,239 (+6896.88%)
Mutual labels:  latex
PythonTipsDS
Python Tips for Data Scientist
Stars: ✭ 23 (-28.12%)
Mutual labels:  latex

ADS to BibDesk API edition (ads2bibdesk)

ads2bibdesk helps you add astrophysics articles listed on NASA/ADS to your BibDesk database using the new ADS Developer API.

The program is loosely based on the original ads_bibdesk from J. Sick et al. However, the query is handled with a python client for the ADS API (ads, maintained by A. Casey). Obsolete codes are replaced in favor of newer built-in Python modules with a simplified code structure. The macOS workflow building process have been updated. The project packaging now follows the new PyPA guideline.

Due to the API usage, ads2bibdesk requires the user to specify a personal API key, per the new NASA/ADS policy. The instruction on how to obtain a key can be found on this official github repo: adsabs-dev-api. In short, to obtain access to the ADS Developer API, one must do two things:

The API key can be written into your ads2bibdesk preference file ~/.ads/ads2bibdesk.cfg (see the template). Following the Python/ads package's instruction, one can also save the key to ~/.ads/dev_key or as an environment variable named ADS_DEV_KEY.

Credit to the contributors of the original ads_bibdesk @jonathansick @RuiPereira @keflavich for their initial implementation.

Quickstart

Installation

The command line script can be installed via:

pip install --user git+https://github.com/r-xue/ads2bibdesk.git # from GitHub
pip install --user ads2bibdesk                                  # from PyPI (likely behind the GitHub version)
pip install --user .                                            # from a local copy

To build the macOS app and service workflow, you need to further run:

pip install --user -U --no-deps --force-reinstall --install-option="--service" ads2bibdesk     # from PyPI

The option "--service" will create two files Add to BibDesk.workflow and Add to BibDesk.app in ~/Downloads/. To install the service, click Add to BibDesk.workflow and it will be moved to ~/Library/Services/. For the app, just drag and drop it to any preferred location.

Note:

  • Only Python >=3.7 is supported (see below).
  • With the "--user" option, you must add the user-level bin directory (e.g., ~/Library/Python/3.X/bin) to your PATH environment variable in order to launch ads2bibdesk.
  • Both the macOS service and app are based on the Automator workflow). They simply wrap around the command line program and serve as its shortcuts.
  • The service shortcut will not work within some applications (e.g., Safari) on macOS >=10.14 due to new privacy and security features built in macOS (see this issue)

Usage

From the Command line

Add or update a new article from ADS:

ads2bibdesk "1807.04291"
ads2bibdesk "2018ApJ...864L..11X"
ads2bibdesk "2013ARA&A..51..105C"
ads2bibdesk "10.3847/2041-8213/aaf872"

ads2bibdesk accepts three kinds of article identifier at this moment

  • ADS bibcode (e.g. 1998ApJ...500..525S, 2019arXiv190404507R)
  • arXiv id (e.g. 0911.4956).
  • doi (e.g. 10.3847/1538-4357/aafd37)

A full summary of ads2bibdesk commands is available via:

ads2bibdesk --help

From the macOS app

  1. Copy the article identifider to the clipboard, in any application
  2. launch Add to BibDesk.app

From the macOS service

  1. Highligh and right-click on the article identifider
  2. Choose 'Services > Add to Bibdesk' from the right-click menu

Compatibility and Dependency

I've only tested the program on the following macOS setup:

  • macOS (>=10.14)
  • Python (>=3.7.3)
  • BibDesk (>=1.7.1)

While the program likely works on slightly older software versions, I don't focus on the backward compatibility. On my working machine (Catalina), I set Python 3.8 from MacPorts as default:

sudo port install python38 py38-pip py38-ipython
sudo port select python python38
sudo port select ipython py38-ipython
sudo port select pip pip38

Status

The following functions have already been implemented in the package:

  • query the article metadata (title, abstract, BibTeX, etc.) with the new API by article identifiers (no more in-house ADS/arxiv HTML parsing functions)
  • download article PDFs using the ADS gateway links
  • use an authorized on-campus ssh proxy machine (with your public key) to download PDFs behind the journal paywall
  • add/update the BibDesk database and attach downloaded PDFs (largely borrowing the AppleScript method from the original ads_bibdesk)

Other changes from the original ads_bibdesk include:

  • clean up the dependency requirements
  • replace obsolete Python syntax/functions/modules with newer ones, e.g. optparser->argparser, f-string formatting, and use configparser()
  • The macOS Automator workflow is running the installed console script rather than an embedded Python program

Some less-used features from the original ads_bibdesk are gone: notably, the "ingest" and "preprint-update" modes. But I plan to at least add back the "preprint-update" option, by scanning/updating article_bibcode associated with arXiv). My improvement proposal can be found here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].