aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: c8ceecf4d34d00bd4ab2fd6c7ded02e739d4186a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Astronomy

Resources for Science Olympiad Astronomy. Note that due to the [license](LICENSE), **you must publicly release any code that you use from this repository**.


## Guide

### Install dependencies

You can install all the required dependencies on Arch Linux with `cat packages.txt | xargs sudo pacman -S --asdeps --noconfirm`. For other Linux distros, install your distro's version of the packages in `packages.txt`.


### Google Drive

Folder: https://drive.google.com/drive/folders/1tSWqSONcjwJWfYled2abuSCmDSUt4KiA?usp=sharing

You should download it before contests since you technically can't use the internet during contests.


### rclone

You can copy the Google Drive folder to your computer with `rclone copy "drive:Science/Science Olympiad 20.5/Astronomy 20.5/Astro 2021" . --exclude="General/Hyperphysics English.zip" -P`.

You can copy your files to the Google Drive with `rclone copy . "drive:Science/Science Olympiad 20.5/Astronomy 20.5/Astro 2021" --exclude="astropy/**" --exclude=".git/**" --exclude=".venv/**" --exclude="General/hbase/**" -P`.


## Kiwix

Download all of Wikipedia, or optionally, Wikipedia Astronomy.


## Speedcrunch

Great for unit conversions: https://speedcrunch.org/userguide/advanced.html


## Astropy

For advanced users, you will definitely want to build the documentation: https://github.com/astropy/astropy/blob/main/docs/install.rst#building-documentation


### Wikipedia

You can download Wikipedia using [Kiwix](https://www.kiwix.org/en/). It should be more than enough for regionals and state.


### Generate a binder

`mkbinder.py` is a Python script to download web pages. It can detect if the latest version of a website is newer than the downloaded version and download only the web pages that need to be updated.

You need to have [Python 3](https://www.python.org/downloads/) installed as well as [wkhtmltopdf](https://wkhtmltopdf.org/). You also need to be able to use the command line.

First download this repository to your computer.

Navigate to the folder in your terminal and run `pip install -r requirements.txt` to install dependencies.

Add links to download to text files in the `Links` folder. The links in each text file will be downloaded to their own folder.

Now run `python mkbinder.py`. It may take a while, depending on how many links to download.

Spam Ctrl-C in your terminal to quit the script while it's running.

You can change the backend used to download the websites, but the default backend `pdfkit` tends to work the best and is recommended. There is an alternative backend `weasyprint` which may work better in some cases and does not require wkhtmltopdf. Only change the backend if you are having trouble with the default and you know what you are doing!

```
usage: mkbinder.py [-h] [--backend {pdfkit,weasyprint}] [--force {False,True}]

optional arguments:
  -h, --help            show this help message and exit
  --backend {pdfkit,weasyprint}, -b {pdfkit,weasyprint}
                        change the download backend; default: pdfkit
  --force {False,True}, -f {False,True}
                        force download all links instead of only the ones that need to be updated; default: False
```