-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME-online
125 lines (84 loc) · 5.69 KB
/
README-online
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
=====================================================
=Press [up] and [down] to scroll, press [q] to quit.=
=====================================================
ImaginaryInfinity Calculator v2.2
Copyright 2020 Finian Wright
ImaginaryInfinity Calculator is a lightweight, but expandable calculator. It's
command line interface is designed to resemble that of some graphing
calculators. To preform another operation on a result, simply type the operation you wish to preform (eg. "/5" to divide the previous result by 5). To use the previous result
in a new calculation, just specify the operation after the new calculation (eg. "5-" to subtract the previous result from 5).
We provide a packaged version of ImaginaryInfinity calculator for some Linux distributions
Supported platforms
ImaginaryInfinity Calculator fully supports the following platforms:
- Linux
- Primary development and testing OS. Should have the best support
- Web (repl.it)
- Android
- Termux support covers all or most features including installation.
ImaginaryInfinity Calculator has partial support for the following platforms:
- Haiku
- Haiku will regain full support once I upgrade my testing VM to the latest version
- MacOS
- MacOS support is untested as I do not currently have access to a Mac
- Windows
- Windows support receives much less testing than other platforms
- Any other OS that can run Python 3
- Start an issue on GitHub and we may improve support for your OS
ImaginaryInfinity Calculator has been tested to work on these platforms:
- Ubuntu
- Arch Linux
- OpenBSD
- FreeBSD
- Red Hat Linux
- Alpine Linux
- Android (Termux)
- Windows 10
Plugins
New functionality can easily be added by placing Python files with additional functions in the plugins directory or by downloading plugins from the store. To access a function added by a plugin, type `[plugin].[function]()`. For example, if you wanted to run the function `egg` from the plugin `food`, you would type `food.egg()`. Arguments placed in the parentheses will be passed to the function.
Note:
Functions in the `core` plugin can be accessed without specifying `core`.
ex. `factor(7)` instead of `core.factor(7)`
Themes
The colors used by the calculator can be modified by themes. Themes are ini files that define the colors the calculator will use and are stored in the `themes` folder. To change the theme used by the calculator, run `settings.configMod("appearance", "theme", "<theme name>")`, or select a theme in the settings editor. One theme is included by default, `dark` for use on terminals with a dark background. If you use a terminal with a light background, you can download our official `light` theme from the store.
Built in commands:
The following commands are built in to the calculator or added by the "core" plugin:
- `settings.configMod("<section>", "<key>", "<value>")` - Changes a value in the config file.
- `settings.editor()` - Settings editor, not supported on all platforms
- `factor(<number>)` - Shows factor pairs for a number
- `factorList(<number>)` - Returns a list of the factors of a number
- `fancyFactor(<number>)` - Shows factor pairs and their sums and differences for
a number
- `iprt('<module>')` - Installs and imports a python module from PyPi
- `isPrime(<number>)` - Checks whether or not a number is is prime
- `isPerfect(<number>)` - Checks whether or not a number's factors add up to twice the
starting number
- `restart()` - Restarts iiCalc
- `clear()` or `clear` - Clears the screen
- `sh('<command>')` - Runs a command directly on your computer
- `update()` - Updates the calculator
- `quit()` - Quit ImaginaryInfinity Calculator
CLI Store
- `pm.update()` - Update the package list, this must be run before plugins can be installed or to check for updates
- `pm.install("<plugin>")` - Installs a plugin from the plugin index
- `pm.list("<available/installed>")` - List plugins
- `pm.search("<term>")` - Search the plugin index
- `pm.info("<plugin>")` - Show info about a plugin
- `pm.upgrade()` - Install all available updates
- `pm.remove("<plugin>")` - Removes an installed plugin
- `pm.installFromFile("<filename>")` - Install a plugin from a local \*.icpk file
GUI Store
- `store.store()` - Runs the GUI version of the plugin store
Note: In the GUI search box, you can specify `type:<type>` anywhere in the query to search for types of plugins. You can add a subquery by specifying it after the type. Example: `type:plugins discord` to search for only plugins with the keyword of discord or `light type:theme` to search for only themes with the keyword of light. Types of plugins include:
- plugin(s)
- theme(s)
Submitting a plugin
You can submit a plugin to the store by clicking https://turbowafflz.azurewebsites.net/iicalc/auth. The plugin must fit the guidelines which can be found on the GitHub repository. Violating these guidelines may result in your plugins being removed and a permanent ban from submitting plugins.
Disclaimer: Even though we try to filter out malware, we cannot catch everything. We are not responsible for any damage caused by using user-created content. By using ImaginaryInfinity Calculator or any of it's services, you agree that no contributers to ImaginaryInfinity Calculator are responsible for any harm or damage caused by the usage of user-created content.
The following commands accept a second argument to prevent the result from being
printed. This is useful when they are used in another function so they don't
all get shown to the user:
- `factorList(<number>, [printResult])`
- `isPrime(<number>, [printResult])`
- `isPerfect(<number>, [printResult])`
- `toStd("<value>", [roundVal], [printResult]) - Convert e notation number to standard notation`
printResult can be set to `True` or `False`, and defaults to `True` if not specified