Update README.md and index view
* Add an index view. * Update README.md to reflect how to use Bottle app.
This commit is contained in:
parent
ec97c0a320
commit
dd1af6a8f0
32
README.md
32
README.md
@ -1,6 +1,11 @@
|
|||||||
Metadata for arXiv
|
Metadata for arXiv
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
The goal of this repository is to provide a minimal API to put metadata on arXiv papers.
|
||||||
|
|
||||||
|
TODO: Better description.
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
For building `opendetex` (which is a necessary dependency), you will need
|
For building `opendetex` (which is a necessary dependency), you will need
|
||||||
@ -9,15 +14,38 @@ For building `opendetex` (which is a necessary dependency), you will need
|
|||||||
* Clone this repository: `git clone https://github.com/Phyks/arxiv_metadata`.
|
* Clone this repository: `git clone https://github.com/Phyks/arxiv_metadata`.
|
||||||
* Init submodules (`opendetex`): `git submodule init; git submodule update`.
|
* Init submodules (`opendetex`): `git submodule init; git submodule update`.
|
||||||
* Build `opendetex`: `cd reference_fetcher/opendetex; make`.
|
* Build `opendetex`: `cd reference_fetcher/opendetex; make`.
|
||||||
|
* [This is all if you only want to use the `reference_fetcher`. Else, go on reading]
|
||||||
|
* Download required Python modules: `pip install -r requirements.txt`.
|
||||||
* You are ready to go.
|
* You are ready to go.
|
||||||
|
|
||||||
## Usage
|
## Test it
|
||||||
|
|
||||||
|
You can test it easily using the Bottle built-in webserver. This is the default configuration.
|
||||||
|
|
||||||
|
To start the app, just run `python3 ./main.py` and head to http://localhost:8080.
|
||||||
|
|
||||||
|
|
||||||
|
You should not use this server in production, and should edit `main.py` accordingly.
|
||||||
|
|
||||||
|
|
||||||
|
## Associated library
|
||||||
|
|
||||||
|
`reference_fetcher` is a module you can use to:
|
||||||
|
|
||||||
|
* Fetch DOIs (or arXiv ids) of papers referenced by a given paper on arXiv (or any other paper, provided that you have a .bbl file).
|
||||||
|
* Fetch DOI associated with a given arXiv paper (if any).
|
||||||
|
* Fetch the arXiv identifier associated to a given DOI (if any).
|
||||||
|
* and more :)
|
||||||
|
|
||||||
|
`fetch_references.py` script in the root folder is here to show you how to use it and to serve as a minimal example.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
* `./fetch_references.py some_file.bbl` to get a list of DOIs associated to each `\bibitem`.
|
* `./fetch_references.py some_file.bbl` to get a list of DOIs associated to each `\bibitem`.
|
||||||
* `./fetch_references.py arxiv_eprint_id` to get a list of DOIs associated to each reference from the provided arXiv eprint.
|
* `./fetch_references.py arxiv_eprint_id` to get a list of DOIs associated to each reference from the provided arXiv eprint.
|
||||||
|
|
||||||
|
|
||||||
## Example
|
### Example
|
||||||
|
|
||||||
```
|
```
|
||||||
$ ./fetch_references.py 1401.2910
|
$ ./fetch_references.py 1401.2910
|
||||||
|
7
main.py
7
main.py
@ -5,6 +5,7 @@ from sqlalchemy import create_engine
|
|||||||
|
|
||||||
import database
|
import database
|
||||||
import routes
|
import routes
|
||||||
|
import tools
|
||||||
|
|
||||||
# Initialize db and include the SQLAlchemy plugin in bottle
|
# Initialize db and include the SQLAlchemy plugin in bottle
|
||||||
engine = create_engine('sqlite:///:memory:', echo=True)
|
engine = create_engine('sqlite:///:memory:', echo=True)
|
||||||
@ -32,6 +33,12 @@ app.install(plugin)
|
|||||||
|
|
||||||
|
|
||||||
# Routes
|
# Routes
|
||||||
|
@app.get("/")
|
||||||
|
def index():
|
||||||
|
return tools.APIResponse(tools.pretty_json({
|
||||||
|
"papers": "/papers/?id={id}&doi={doi}&arxiv_id={arxiv_id}",
|
||||||
|
}))
|
||||||
|
|
||||||
app.get("/papers", callback=routes.get.fetch_papers)
|
app.get("/papers", callback=routes.get.fetch_papers)
|
||||||
app.get("/papers/<id:int>", callback=routes.get.fetch_by_id)
|
app.get("/papers/<id:int>", callback=routes.get.fetch_by_id)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user