Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SciCrunch/scibot
curation workflow automation and coordination
https://github.com/SciCrunch/scibot
Last synced: 5 days ago
JSON representation
curation workflow automation and coordination
- Host: GitHub
- URL: https://github.com/SciCrunch/scibot
- Owner: SciCrunch
- License: apache-2.0
- Created: 2016-01-07T21:38:41.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-03-14T18:21:11.000Z (8 months ago)
- Last Synced: 2024-03-27T08:07:52.362Z (8 months ago)
- Language: Python
- Homepage:
- Size: 433 KB
- Stars: 36
- Watchers: 14
- Forks: 10
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - SciCrunch/scibot - curation workflow automation and coordination (others)
README
# SciBot
[![PyPI version](https://badge.fury.io/py/scibot.svg)](https://pypi.org/project/scibot/)curation workflow automation and coordination
* find RRIDs in articles
* look them up in the SciCrunch resolver
* create Hypothesis annotations that anchor to the RRIDs and display lookup results## Getting Started
* [Create a Hypothesis](https://web.hypothes.is/start/) account which will post the annotations.
* Generate an api token at https://hypothes.is/profile/developer (must be logged in to see page).
* Create a group to store the annotations at https://hypothes.is/groups/new (must be logged in to see page).
* See [Setup on amazon](#setup-on-amazon)## Capturing the bookmarklet
Visit https://HOST:PORT/bookmarklet and follow the instructions.
## Using the bookmarklet
Visit an article that contains RRIDs, click the bookmarklet
## Checking results in the browser
The found RRIDs are logged to the JavaScript console
## Checking results on the server
The found RRIDs are logged to timestamped files, along with the text and html of the article that was scanned for RRIDs
## Setup on Gentoo
As root.
```bash
layman -a tgbugs-overlay
emerge scibot
rc-config add scibot-bookmarklet default
vim /etc/conf.d/scibot-bookmarklet # set username, group, api key, etc.
/etc/init.d/scibot-bookmarklet start
```## Setup on ubuntu 18.04
Set `export PATH=~/.local/bin:${PATH}` in `~/.bashrc`
1. `sudo apt-get install build-essential python3-dev libxml2-dev libxslt1-dev`
2. `pip3 install --user pip pipenv`
3. `git clone https://github.com/SciCrunch/scibot.git`
4. `cd scibot && pipenv install --skip-lock`
5. `pipenv shell` to get an environment with acess to all the required libraries.
6. Inside the pipenv shell (after following steps 6-10 below) you should
be able to run commands like `python scibot/export.py`.## Setup on amazon
Building the rpm
```
pushd resources/rpmbuild
rpmbuild --nodeps --define "_topdir `pwd`" -ba SPECS/scibot.spec
popd
```
Once this is done scp the rpm to the host.
Also scp the ssl certs over, or use letsencrypt to obtain a cert.
If you are using using a cert from another registrar you may need to
bundle your certs `cat my-cert.crt existing-bundle.crt > scicrunch.io.crt`
(see https://gist.github.com/bradmontgomery/6487319 for details)
See [nginx.conf](./resources/config_files/etc/nginx/scibot.conf)
for details on where to put the certs after scping them over.Install steps run as root or via sudo.
```bash
amazon-linux-extras install nginx1.12
yum install scibot-9999-0.noarch.rpm # update with yum reinstall
pip3 install pipenv wheel
vim /etc/systemd/system/scibot-bookmarklet.service.d/env.conf # set api keys etc
```Install scibot codebase as the scibot user
```bash
git clone https://github.com/SciCrunch/scibot.git
pushd scibot
pipenv install --skip-lock
```
Hopefully this step will become simpler once we start pushing releases.
`pipenv install scibot` or alternately it may also be possible to package
everything we need in the rpm and only install that. With none of the other
steps needed at all.Start services as root
```bash
systemctl start nginx scibot-bookmarklet-sync scibot-bookmarklet
```### Updating
On the scibot host
```bash
sudo su scibot -
pushd scibot
echo "$(date -Is) $(git rev-parse HEAD)" >> ~/previous-scibot-hashes
git pull
mv Pipfile.lock "Pipefile.lock.$(date -Is)"
~/.local/bin/pipenv install --skip-lock
```Restart as root
```bash
systemctl restart scibot-bookmarklet-sync scibot-bookmarklet
```### manual setup
Install steps
0. ssh in to the host that will serve the script
1. `sudo yum install gcc libxml2 libxml2-devel libxslt libxslt-devel python36 python36-devel python36-pip`
2. `sudo alternatives --set python /usr/bin/python3.6`
3. `sudo pip install pipenv`
4. `git clone https://github.com/SciCrunch/scibot.git`
5. `cd scibot && python3.6 setup.py wheel && pipenv install dist/*.whl`
6. `export SCIBOT_USERNAME=someusername`
7. `export SCIBOT_GROUP=somegroupname`
8. `unset HISTFILE`
9. `export SCIBOT_API_TOKEN=sometoken`
10. `export SCIBOT_SYNC=somerandomnumber` (e.g. run `head -c 100 /dev/urandom | tr -dc 'a-zA-Z0-9'` every time)
11. create a screen session
12. in the screen session run `pipenv run scibot-server` you should create a link to the log files folder in ~/scibot/
13. get letsencrypt certs using certbot, follow directions [here](https://certbot.eff.org/docs/using.html) (prefer standalone)## Development setup
To set up scibot for development (for example if you want to run manual releases)
0. Install python3 and pip for your os (e.g. on macos use `brew`)
1. From your git folder run `git clone https://github.com/tgbugs/scibot.git`
2. `pushd scibot`
3. `pip3 install --user -e .` will install requirements and register the
scibot folder that is under version control with python as the scibot module.
4. `popd`## Dev server
You should change `lol` to something less guessable even if it is only
running on localhost.Run the following blocks in two separate terminals and connect to
`https://localhost:4443/bookmarklet`. If you try `http` you will get
a connection error.You will need to generate the self signed certs using openssl as
described in the comments in [bookmarklet.py::main()](./scibot/bookmarklet.py).
Alternately comment out the ssl wrapping of the socket and use `http`.```bash
SCIBOT_SYNC=lol python -m scibot.sync
``````bash
SCIBOT_USERNAME=scibot \
SCIBOT_GROUP=dev-group \
SCIBOT_GROUP2=dev-group \
SCIBOT_GROUP_STAGING=__world__ \
SCIBOT_API_TOKEN=hypothesis-api-key \
SCIBOT_SYNC=lol \
python -m scibot.bookmarklet
```## If all else fails
Make sure you have >=python3.6 and pip installed. Clone the repo and
run `python setup.py develop --user`.## CoC
SciBot adheres to the Contributor Covenant:
https://www.contributor-covenant.org/