Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => Topic started by: TC01 on November 24, 2010, 09:04:44 pm

Title: ticalc.org "Package Manager"
Post by: TC01 on November 24, 2010, 09:04:44 pm
This project is my longstanding attempt to create a command line utility and Python library for accessing, searching, and downloading projects from ticalc.org (and other sites).

Current version is 1.1; 2.0 has been in development for a while but is hopefully nearing a release with possible support for downloading programs from Cemetech and Omnimaga as well.

Development is generally happening at github (https://github.com/TC01/calcpkg)- you can clone a snapshot from there. Or, you can download the latest version from ticalc.org for Windows (http://www.ticalc.org/archives/files/fileinfo/433/43348.html) or Linux (http://www.ticalc.org/archives/files/fileinfo/433/43369.html). (Downloads are also hosted on Cemetech for Windows (http://www.cemetech.net/programs/index.php?mode=file&path=/win/calcpkg.zip) and Linux (http://www.cemetech.net/programs/index.php?mode=file&id=617)). Once it's downloaded, extract the archive and run "python setup.py install". Note that if you're on Linux, this command will probably require root access (su or sudo); no matter what platform you are on you will need Python 2.x to run it.

After installing it, you can run it on the command line using:

python calcpkg.py [command] [filename]

Note that if you're on Linux and using 2.0 or higher (or the 2.0 snapshots from github), you should instead be using:
calcpkg [command] [filename]

The first command you run should run is "update"- this will create a local copy of the master.index file from ticalc.org that calcpkg knows how to use for searching and so on. Then you can run "calcpkg search" and "calcpkg install", which will list and download programs. For a full list of all possible options, run "calcpkg -h" (or possibly refer to the README).

Here is a rather old screenshot:
Title: Re: ticalc.org "Package Manager"
Post by: calcdude84se on November 24, 2010, 09:06:02 pm
Cool :D
Can't wait for more features! :)
Title: Re: ticalc.org "Package Manager"
Post by: Eeems on November 24, 2010, 10:18:58 pm
Sweet! Can't wait to play around with this!

EDIT: Err, when I try to run this on my linux partition, it fails on all version of python I have installed (python, python2, python2.7, python3, python3.1)
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 24, 2010, 10:25:45 pm
Nice, will this work on Windows 7 x64?
Title: Re: ticalc.org "Package Manager"
Post by: Eeems on November 24, 2010, 10:37:34 pm
Nice, will this work on Windows 7 x64?
I'm guessing that if you can get the right version of Python installed that it should work
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 24, 2010, 10:41:47 pm
Ah ok, I was wondering because I often have troubles running command prompt stuff. Often I get missing DLL errors.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on November 24, 2010, 10:55:10 pm
It will work on x64- I coded it on Windows 7 x64. And it doesn't require any other Python libraries.

Eeems:

Hrm, not sure why. Does it give Python exceptions?

If it does, can you post them?

I haven't had a chance to run it on my Fedora partition. On Windows 7, I have a Python 2.6.6 installation, where it works fine. I'm booting into Fedora now to find out, though.

EDIT: Booted into Fedora; it works fine. Try this command:

python calcpkg.py get "Wacky Fun Random Numbar Generator"

That should download all 12 WFRNGs from ticalc.org. Please post whatever it outputs.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 24, 2010, 11:15:17 pm
Ah good to hear it will work on 7. I should try this and install python when I get some time. :)

I worry about what will happen if I type quadratic solver, though... I'll get about half of the quadratic solvers on ticalc.org (the other half not being spelled correctly)
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on November 25, 2010, 12:10:29 am
Ah good to hear it will work on 7. I should try this and install python when I get some time. :)

I worry about what will happen if I type quadratic solver, though... I'll get about half of the quadratic solvers on ticalc.org (the other half not being spelled correctly)

True. quicklist "Quadratic Solver" gives me 157 results:

Spoiler For Spoiler:
Code: [Select]
C:\Python27\Dev>python calcpkg.py quicklist "Quadratic Solver"

Search for 'Quadratic Solver' returned 157 result(s)

File Name                                                              Category (excluded in quick search)
=======================================================================================================================
Quadratic Solver
23+ Advanced Solvers
25 Advanced Solvers
Quadrat 80 v1.0 Quadratic formula solver
Comprehensive Quadratic Equation Solver
Comprehensive Quadratic Equation Solver
Quadratic Formula Solver
Quadratic Solver
Quadratic Solver
QuadOreh 1.0 - Quadratic Formula Solver
Quadratic Equation Solver
Quadratic Solver v2.5
Quadratic Equation Solver
Quadratic Formula Solver
Aquations
Aquations
Quadrat 81 v1.0 Quadratic formula solver
Quadratic equation and vertex solver program 1.0
AP Tools 5.1
Quadratic Equation Solver
Ultra-Small Quadratic Equation Solver
DCSQuad Solver v1.0
Grayscale Quadratic Equation Solver
Erik Huelsebusch's Quadratic Equation Solver
ABC-Formula 3.1
ABC-Formula 3.1
Class Aid v2.0
Final Fantasy Quadratic Solver
All In One v1.5
Quadratic Equation Solver
Completing the Square Quadratic Solver
Multi-Display Quadratic Solver
Basic Quadratic Solver
QuadForm-92 6.4
AlgQuad - the ultimate quadratic equation solver!
Quadratics Solver
Quadra Solver v0.5a
Quadratic Solver v.1
Simple Quadratic Solver
Math99
QuadFACT Quadratic Equation Solver
Quadratic Formula
Quadratic Formula
Quadratic Multi-variable Solver
Quadratic Formula Solver
Quadratic Formula Solver
Advanced Quadratic Formula Program
Exact Quadratic
QForm 0.1
Exact Quadratic Solver
Quadratic Equation Solver
Quadratic Equation Solver
Quadratic Equation Solver
Quadratic Solver
N00B C4K3 Quadratic Solver
Equation Solvers
Quadratic Quarto
TI-Source Math Suite 2000, Second Series
TI-Source Math Suite 2000, Second Series
Quadratic Quarto
Quadratic Equation Solver v2.1
HGG's Math Program v2.0 for TI83
HGG's Math Program v2.o
TrigPrgm by Kyle
Quadratic Equation Solver
Quadratic Equation Solver
All About Quadratics
All About Quadratics
A Quadratic Solver!
Quadratic Equation Solver
Quadratics Equation Solver
AcT 2.0
Quad Solver v1.0
Quadratic Solver That Shows The Work
Geometry Formulas Plus
Quadratic Formula Solver
MATHMATX  Version 4.3
QFORM2
Reapex's Quadratic Formula Solver
Cheater v2.0
TI Tools v1.0
Quad 2001 v3.0
Quadform
Quad GS v1.1
Quadratic Equation Solver
Quadratic Solver
Pythag86 v1.0.5
Quadratic Solver
ABC-formula v2.0
MATH B formulas
pythagorean therom solver
QFormula
Quadform
Quad4Mula
CHS Math Utilities
Airwack v2.0
Quadratic Solver
83Quad v2.5.2
Nice Ice v3.5
Quadremy
Quadsolve
Quadratic equation solver
ZQuadrat v1.2
Quad GS v1.1
ZQuadrat v1.3
Some Cool Programs
Math Master 4
Quadrad89
Mathematical Solvers v1.0
Quad GS v1.1
Quad GS v1.1
Math OS
ZQuadrat v1.3
Ultimate Quadratic Solver
Tiny Quadratic Equation Solver
Math Programs v1.09
Equation Solver
Six Useful Math Tools
Nice Ice v3.01
qform( )
TriQuad2
Quadratic Equation Solver
ZQuadrat v1.3
MathPack v2.0
Cheater v3.0
AndyMath 1.0
Yet Another Quadractic Solver
The Everything Program
Equation Solver
FormsPro v1.46: Math Class Just Got A Whole Lot Easier!
TI-Source Math Suite 2000, Second Series SR2
Math Help
Mathh version 5.00
Tisthammerw’s Algebra Toolkit v1.3
blueNote lite
Math super solver
Algebra II Toolbox v6.89
Formula Solver
Function Solver
Equation Solver
Algebra Solver v2.1
Algebra Solver v2.1
Algebra Solver v2.6
Algebra Solver v2.6
Chromium 1.1
Xion OS v.4.0 Beta Shell
~Garrett's Toolbox
The Ultimate Algebra II and Geometry Collection!!
2nd Degree Polynomial Solver
The Ultimate Algebra II and Geometry Collection!!
Ultimate Math Program 2
The ultimate solver
The New Equation Solver
Esolve 4
Unique Equation Solver v1.01 with engine
Algebra I/Geometry/Trigonometry
Superior 1.2

If there was a ticalc.org repository set up in the same way as, say, a Linux repository, it would be much easier. I'm forced to use "Search" to get files.

All I'll say is: there's a reason "get" prompts you before it downloads something...

Also, you can use CTRL + C to interrupt the current process.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 25, 2010, 01:02:42 am
I bet if you include all possible misspellings it jumps to 8000 ;D
Title: Re: ticalc.org "Package Manager"
Post by: AngelFish on November 25, 2010, 01:17:48 am
 
Quote
Grayscale Quadratic Equation Solver

:o
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 25, 2010, 01:43:44 am
That was a parody of all quadratic solvers on ticalc.org. Back then they even stopped allowing them in, but they allowed that one (quite ironically, it was the 100th one uploaded as well). There was a fake news on Omni about it and a fake forum called Quadratic Solvers Liberation Front was started. ;D

It was kinda like a sequel to my grayscale number guessing game, except the quadratic solver was made by Radical Pi (AKA Nyrax). :P
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on November 28, 2010, 05:27:26 pm
Update!

I've completely changed the way this works.

Instead of searching ticalc.org using the websearch, it uses cached package lists (files.index and names.index). These cached files (which are why the download is larger) simply contain parsed forms of the master.index (each line of files.index has a path/filename on ticalc.org, each line of names.index has the name corresponding with the file on the same line in files.index). This means that for searches and counts (I added a "count" command), the script doesn't need the Internet. Searches are now pretty fast.

To download, obviously you need the Internet, but the script can pull the cached paths out of files.index, so no searching is involved.

Then, when you want to update the index files, you use the new "update" command- which parses master.index and recreates the names.index and files.index files. It will take some time to run, though.

The index files must be in the same directory as the script when you run it.

Also, I've uploaded this version to the Cemetech and ticalc.org archives (Omni doesn't have a folder for comp utilities).
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on November 29, 2010, 03:38:55 pm
Odd.

I tried running this on my Fedora partition. At first, the output from running "calcpkg.py list" was screwy, but it still worked (it was still able to download packages fine when I ran "calcpkg.py get").

Then I ran an update to rewrite the package index files and the output looked normal.

So all I can say is, run a "calcpkg.py update" before anything else when trying it on Linux.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 29, 2010, 11:58:51 pm
I like the update, hopefully this should put less load on the server. Also I saw this was uploaded and approved on ticalc.org so I guess they're now fine. I guess it's because they're on a better server now.
Title: Re: ticalc.org "Package Manager"
Post by: TravisE on November 30, 2010, 01:01:57 am
Looks nice! This can actually be a more convenient way to do quick, basic searches in some cases than ticalc.org's own search system.

Works fine on my Linux system. You might want to change the first line from “#!usr\bin\env python” to “#!/usr/bin/env python” and set the line ending format of the script to Unix so that it's possible to call it directly without prefixing the command line with “python”.

A couple of other ideas:

* Case-insensitive searching (currently, for instance, searching for “quad” gives different results from “Quad”, so you have to try both to make sure you find everything)

* When downloading, handle duplicate filenames (from files in different directories on the ticalc.org server) by renaming them rather than having them overwrite each other. Example: If you get “Frogger”, you'll end up with several missing files because they're named “frogger.zip” and only one “frogger.zip” remains after the download process)
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 30, 2010, 02:33:02 am
Maybe sort files by directories on the computer too? (and specify the amount of levels to memorize,  for example if you want to sort by calc models and language instead of calc model, language, program type and genre.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on November 30, 2010, 06:59:00 am
Oops. I always seem to end up with the slashes the wrong way around, thanks for pointing that out.

Case insensitive searching is a good idea too.

I'll also set up a system of some sort to handle duplicate filenames.

I'm thinking of adding a switch for searching by directory as well, something like "-d ti89\" or "-d "ti83plus\basic\math\".

Thanks for the feedback!
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 30, 2010, 02:37:20 pm
No problem. :) I might actually use this at one point to search for some files in particular, just out of curiosity, plus it can be useful to find a program in particular that we didn't download in a long while, like an ASM utility. Sometimes, authors upload in 83 misc programs, other times 83 libs, etc.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on November 30, 2010, 04:37:53 pm
I've fixed the #!/usr/bin/env python and added case insensitive searching. I think it'll just be best to distribute one copy for Windows and one for Unix/Linux, with the different line endings set.

I still need to get multiple files with the same name working, and a switch for searching in a specified directory. Once that is done, I'll upload a new version.

I also integrated it with an IRC bot... sort of. The bot can do "!calcpkg count text" and say in the channel the number of results. It can do "!calcpkg list text", but since saying it all in the channel would be bad, it pastebins the results and just gives back a link to that Pastebin. And "!calcpkg update" can be ran as well.

The Twisted framework for Python doesn't support sending files to people with dcc, so I can't make it download the files and send them to you.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on December 01, 2010, 03:50:10 am
That bot seems interesting, I think it would be good to flood control the command, though, so it can only be used every 30 seconds publicly, otherwise it forces you to do /msg botname !calcpkg instead. This would be to prevent abuse. Also, I'm glad it won't output the results on IRC, even privately, because the bot would quit for excess flood all the time. X.x
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 01, 2010, 09:01:11 pm
Attached is the current version of the package manager (adapted slightly for IRC) and the bot. (The bot imports the package manager).

It uses the Twisted framework for Python 2.x- which requires both Twisted and Zope.Interface to run.

It is set to join #cemetech and #omnimaga by default on whatever IRC network you specify when you run it- you specify the network by:

"python calcpkgbot.py #otherchan irc.efnet.net"

#otherchan could be anything- making it #cemetech or #omnimaga would make it only join the two default channels.

There are five commands in there- in addition to !calcpkg list, !calcpkg count, !calcpkg update, and !calcpkg help, I added a !nick to change the bot's nickname remotely (the default is set to "Hex", a Terry Pratchett reference and most likely a nick already in use somewhere).

The update command can only be ran by operators because it's a time/resource intensive operation.

If you send commands to a private message, it will return them to you via private message- so if it's spamming up the channel you can make people take it to privmsg (or just silence it). DJ suggested flood control of some sort- that is the closest I came to doing it now.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on December 01, 2010, 11:36:07 pm
Cool, I hope people won't all run their own copies of the bot, though, now that you made it public. ???

Glad it has flood control, though.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 04, 2010, 12:44:19 pm
Getting ready to release an update.

In addition to case insensitive searching and the #! fix, I've:

1. Changed the way downloaded files are named- they contain the path (so "83plus-asm-games-generate.zip" rather than just "generate.zip") to fix the issue with multiple files containing the same name.

2. Added command-line opts for searching. The opts are:

-c [name]: --category=[name]: some category to search in. This can be high level like "83plus" or "win", and it can also be "games" or "math" or "basic" or "os" or whatever.
-g: --game: Searches for games only ("-c games")
-m: --math: Searches for math and science only ("-c math" and "-c games")

These switches only work with the list and get commands. I also added a switch for update, -s or --silent, which keeps output to a minimum. All switches can be viewed with "calcpkg.py -h".

I'm also just going to have a separate Unix and Windows version on ticalc.org (and Cemetech) with the different line endings.

I just need to rewrite the readme, boot into Windows and test the Windows version, and then I'll release.
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on December 04, 2010, 02:37:57 pm
Getting ready to release an update.

In addition to case insensitive searching and the #! fix, I've:

1. Changed the way downloaded files are named- they contain the path (so "83plus-asm-games-generate.zip" rather than just "generate.zip") to fix the issue with multiple files containing the same name.

2. Added command-line opts for searching. The opts are:

-c [name]: --category=[name]: some category to search in. This can be high level like "83plus" or "win", and it can also be "games" or "math" or "basic" or "os" or whatever.
-g: --game: Searches for games only ("-c games")
-m: --math: Searches for math and science only ("-c math" and "-c games")

These switches only work with the list and get commands. I also added a switch for update, -s or --silent, which keeps output to a minimum. All switches can be viewed with "calcpkg.py -h".

I'm also just going to have a separate Unix and Windows version on ticalc.org (and Cemetech) with the different line endings.

I just need to rewrite the readme, boot into Windows and test the Windows version, and then I'll release.

I just checked this project, WOW, very good indeed, those new features also look blasting!

Features Request:

> Can you make it not run using cmd? I think I may help you with that :), if it is python-possible;
> Is this a bug?
>> I updated, it took a while but was finished, then searched for formulum, my program in Ticalc, but it wasn't found... (here (http://www.ticalc.org/archives/files/fileinfo/432/43266.html))
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 04, 2010, 06:07:02 pm
ScoutDavid: By "not run using cmd", you mean "not be a command line program and have a GUI", I assume. (Please clarify if I'm mistaken).

Honestly, I prefer it to be a command line program. (Wow! Three months ago I hated command line programs. Too much Linux...)

Personally, I feel like this is best suited for the command line. In Linux, I think package managers in the terminal are much simpler to use than the GUIs. That's just a personal preference though.

I could make a GUI for it in Python, yes- but I would much rather devote time to perfecting the existing tool. After that... I could try to hack out a Tkinter GUI (I'd rather not, but Tkinter is built-in to Python as opposed to PyGTK/wxPython/PyQT).

Whatever I did, I would make it a frontend that wouldn't remove any functionality from the command line tool- much like the IRC bot.

For the bug: did you search for "Formulum" or "formulum"? At the present it doesn't do case-insensitive searching. When I did "Formulum" I got 2 results.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on December 04, 2010, 06:11:38 pm
I like the update! As for a version that isn't for command line, could you maybe create a bat file for those who don't want to Google how to write batch files? It might be enough. I don't know if a GUI is necessary for such program, though, plus it is more convenient to use through command line, but we have to understand that some people (like me) are more visual and prefer GUIs, so certain type of softwares may be better in GUI form for those people, like emulators.
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on December 04, 2010, 06:12:05 pm
Quote
ScoutDavid: By "not run using cmd", you mean "not be a command line program and have a GUI", I assume. (Please clarify if I'm mistaken).

Not-GUI, that would make it slow.
Not cmd, since we need to cd the location.
Python but non-GUI!

If you make it Python but non-GUI I can make a GUI out of it, I'm one awesome (sorry for this) python GUI programmer actually.

Hum... I got none and updated, gonna try again
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 04, 2010, 06:36:14 pm
Ah, I get what ScoutDavid was saying now (after our conversation over IRC).

A batch file is fairly straightforward to implement for this. Very, in fact.

But you could use this as part of another Python module (in this case, a wxPython GUI) without any modifications. (now that I come to think of it). :)

If you import calcpkg, you can call various functions like "ticalcSearch", "ticalcUpdatePackageLists", "ticalcCount", and "ticalcGet" without needing to invoke the program on the command line (which you could do anyway using the subprocess module). You'd just pass them arguments and they'd do stuff. The IRC bot is a good example of how you could run ticalc.org searches from another module.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 05, 2010, 05:29:07 pm
Also, the new version has been uploaded to ticalc.org here (http://www.ticalc.org/archives/files/fileinfo/433/43348.html). And there's a version with the Unix line endings here (http://www.ticalc.org/archives/files/fileinfo/433/43369.html). (Copies are also available in Cemetech's archives- and I'll replace the one in the first post in a second).
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on December 05, 2010, 05:30:11 pm
Also, the new version has been uploaded to ticalc.org here (http://www.ticalc.org/archives/files/fileinfo/433/43348.html). And there's a version with the Unix line endings here (http://www.ticalc.org/archives/files/fileinfo/433/43369.html). (Copies are also available in Cemetech's archives- and I'll replace the one in the first post in a second with a link to ticalc.org).

Is it raw_input() based already?
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 05, 2010, 05:35:44 pm
Also, the new version has been uploaded to ticalc.org here (http://www.ticalc.org/archives/files/fileinfo/433/43348.html). And there's a version with the Unix line endings here (http://www.ticalc.org/archives/files/fileinfo/433/43369.html). (Copies are also available in Cemetech's archives- and I'll replace the one in the first post in a second with a link to ticalc.org).

Is it raw_input() based already?

No, it's not... but you should be able to just do this if you want to run a search (although, you probably don't want to be printing to a command line in a wxPython GUI):

Code: [Select]
import calcpkg

data = calcpkg.ticalcSearchIndex(msg[14:])
print calcpkg.structureSearchOutput("File Path/Category:", "File Name:")
print "======================================================================================================================="
for datum in data:
print calcpkg.structureSearchOutput(datum[0], datum[1])

There are other functions too, for everything that can be called without needing a command line.

So you probably could make a GUI for it now without any further changes.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on December 05, 2010, 06:17:58 pm
Cool update! I was gonna say maybe you could put it in Omnimaga archives, but unfortunately it's not very programming-oriented, so it wouldn't fit in any category. :P
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on December 05, 2010, 06:25:21 pm
Also, the new version has been uploaded to ticalc.org here (http://www.ticalc.org/archives/files/fileinfo/433/43348.html). And there's a version with the Unix line endings here (http://www.ticalc.org/archives/files/fileinfo/433/43369.html). (Copies are also available in Cemetech's archives- and I'll replace the one in the first post in a second with a link to ticalc.org).

Is it raw_input() based already?

No, it's not... but you should be able to just do this if you want to run a search (although, you probably don't want to be printing to a command line in a wxPython GUI):

Code: [Select]
import calcpkg

data = calcpkg.ticalcSearchIndex(msg[14:])
print calcpkg.structureSearchOutput("File Path/Category:", "File Name:")
print "======================================================================================================================="
for datum in data:
print calcpkg.structureSearchOutput(datum[0], datum[1])

There are other functions too, for everything that can be called without needing a command line.

So you probably could make a GUI for it now without any further changes.

I will have a look at the code later and see if it possible to make a wxPython program out of it.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 15, 2010, 06:57:22 pm
I've been working on a new version lately. Here are some of the changes:

A list switch (-f) which lets you search for the file name rather than the program name. For instance, if you want to search for all ticalc.org files containing "quadratic" in the filename rather than the name of the program, you'd use -f with list.

I've been typing "search" instead of "list", so I've redirected the "search" command to "list"- both calcpkg.py search and calcpkg.py list will do the same things.

The searching options can now be ran with calcpkg.py get as well.

I also added a logging system, so if you run it with the -l switch every text message printed to the terminal will also be written to calcpkg.log (with a note indicating the date ran).

I added a "clean" command that deletes all .tar.gz and .zip files from the folder that calcpkg.py is in (it also removes the calcpkg.log file). Please note: the files are not sent to the recycle bin/trash, so they're deleted for good.

And finally, I added options to disable the confirmation prompts when running calcpkg.py get (-n) and calcpkg.py update (-p). I'd have preferred them to be the same letter but optparse wouldn't let me.

For people who wish to use calcpkg as part of another program (*cough* making a GUI *cough*), there are several other changes.

The options are now parsed in main(), and then passed as boolean or string arguments to various functions (unlike before, when the opts object was passed directly to each function using it). This will make it easier for another program to search using options.

Finally, I rewrote the text output system. An end user shouldn't notice any changes, but you will if you look at the code. (This is a bit complex). Python will let you redirect print to any object with a write() function. I've done the following:

1. Changed (almost) all instances of "print" to "printcalcpkg()", a custom-defined function.
2. printcalcpkg() will print it's text to whatever object is stored in "calcpkg.output" (the global variable output from inside the program)
3. Set the default output to a "calcpkgOutput" object I've included- which prints to the terminal and has an option to also log output to a logfile (how logging works)

If you want to see an example of how to make a custom "printing" object look at the code.

What does this mean? It means that you could redirect all the print statements to some kind of GUI- a big textbox or something.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on December 16, 2010, 04:24:55 am
Nice update. :D

I also just remembered something: Ticalc won't let you search words shorter than 4 words. I assume your package manager can, right? Because this was annoying on ticalc when you wanted to search for "RPG" for example but it told you your query was too short. X.x
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 16, 2010, 07:55:18 am
Nice update. :D

I also just remembered something: Ticalc won't let you search words shorter than 4 words. I assume your package manager can, right? Because this was annoying on ticalc when you wanted to search for "RPG" for example but it told you your query was too short. X.x

Yes, it can. :)

Because this doesn't (any more) go through ticalc.org's search engine and instead searches through the index files directly, and the searching code I wrote doesn't limit the length of a query.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 19, 2010, 11:17:27 am
I've released version 0.7 (To the Cemetech archives, and it will be sitting on ticalc.org's pending file list in a bit). Download link is: here (http://www.cemetech.net/programs/index.php?mode=file&path=/win/calcpkg.zip) (and here (http://www.omnimaga.org/index.php?action=dlattach;topic=5446.0;attach=5110))

I might as well just post the changelog from the readme:

-Added an option to search the file index rather than the name index (-f)
-Added logging functionality (-l) that logs output to a textfile, calcpkg.log
-Added clean command, which removes all .zip, .tar.gz, and .log files from the current folder
-Added mechanism for easily redirecting output (allowing another program to make all the print statements go somewhere else)
-Added a fake "search" command that does the same thing as "list"
-Added options for disabling the prompts before downloading and updating (-n and -p respectively)
-Included a sample script that shows how calcpkg can be imported in a module and used as part of another program
-Fixed bug where -g and -m searching options ran together would not work
-The searching options now work with the count and get commands as well
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on December 19, 2010, 11:20:03 am
Nice  TC01!!! Now it'll be really easy to work on it and make it GUI!
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on December 19, 2010, 11:53:31 am
Cool! When it is finished someone could indeed make a GUI. Not that it's fully necessary, though. I like the features so far. :)
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on December 19, 2010, 01:52:25 pm
Cool! When it is finished someone could indeed make a GUI. Not that it's fully necessary, though. I like the features so far. :)

The GUI will basically be an easier way to choose options (a choice list, you can choose 1,2, or 3 options at the same time), a text control to input text, and a button that lists, allows download and counts, all the features in one button :)
Title: Re: ticalc.org "Package Manager"
Post by: Netham45 on December 19, 2010, 01:55:23 pm
Could you make it poll the new files xml feed to get new data?

If it doesn't at least know the last file in the xml feed, assume the data is old and needs updated, and prompt?
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on December 19, 2010, 02:03:31 pm
Could you make it poll the new files xml feed to get new data?

If it doesn't at least know the last file in the xml feed, assume the data is old and needs updated, and prompt?

Hmm... I could, yes. But it would mean I'd need to make at least two web requests (one to the feed, one to the fileinfo page of the last file) each time it runs. Before, the only thing that was making web requests was the updating and the downloading (to save on bandwith).

What I could do is add an opt switch to do this when it starts. Or an opt switch to stop it from doing this.

Cool! When it is finished someone could indeed make a GUI. Not that it's fully necessary, though. I like the features so far. :)

The GUI will basically be an easier way to choose options (a choice list, you can choose 1,2, or 3 options at the same time), a text control to input text, and a button that lists, allows download and counts, all the features in one button :)

Well, easier is subjective. ;) But yes.

Also, the GUI will just be a choice- the command-line program will still work separately.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on December 19, 2010, 03:57:29 pm
Yeah it depends of people. I myself can,t stand doing everything through command prompt if it means navigating through directories and stuff, and I never remember the batch file syntax. Some people prefer guis, but guis means lower compatibility.
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on December 20, 2010, 05:52:57 am
Yeah it depends of people. I myself can,t stand doing everything through command prompt if it means navigating through directories and stuff, and I never remember the batch file syntax. Some people prefer guis, but guis means lower compatibility.

The GUI will also be released in two versions, I hope. A .exe one for people who don't have Python and a .pyw one for people with Python and wxPython (they need both, that's why .exe is important) :)
Title: Re: ticalc.org "Package Manager"
Post by: Netham45 on December 20, 2010, 06:00:45 am
Well, what I was thinking is if you know at least one file in the latest files list, then you can get all of the unknown files from that list (I believe) and update your local database to reflect that.
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on January 08, 2011, 08:29:09 pm
Making Assemblex taught me TONS of wxPython and I may give this another try sometime.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on January 08, 2011, 08:32:50 pm
Cool to hear :D
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on January 25, 2011, 06:30:07 pm
So... I know I haven't worked on any of my projects for ages: you can thank a certain game called Minecraft for that. :P

I've been thinking about Netham's idea of using the RSS to update, though. What I could do is add a "check" command which will read the RSS feed on the site. If the last file on the RSS feed is known (is found in the index), it will then go through the RSS, find all new files and add them to the local database.

The downside of doing this? I'd need to add a dependency- the feedparser module. It's a third-party Python library for RSS manipulation, and I'd need it to look at the entries in the feed. And I know dependencies can be annoying...

As for other things to add, one idea could be something with automatic extraction. Perhaps an opt to unzip all archive files it downloads? Or maybe even a search op to let you specify the file extension (search only for .zip and not, say, .tar.gz for Linux software, or only for Linux software).

The only reason I use ticalc.org rather than this sometimes is when I want to look at reviews- something this program doesn't show you. I'd want to add an "info" command to post a link to the file info page... unfortunately I'm not sure what the best way to get the file info page would be- the index file only has the direct link to the file. Any ideas?
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on January 28, 2011, 09:44:34 pm
Hmm good question... I wish ticalc index file included file info pages...

As for the other features they seem interesting. I'M glad to see you around again too.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on February 05, 2011, 10:18:55 pm
Well, since apparently the ticalc.org RSS system is a little screwy (according to Travis on Cemetech), I've decided to release 0.8 now. The full changelog:

-Added a fake "install" command that does the same thing as "get"

-Added an option to search by file extensions (like .zip or .tar.gz)

-Added an option to extract all .zip archives on download, named like:

   "83plus-asm-games-generate-zip"

-Added an option to only print the version and then exit

-Clean command will now remove files created by the extraction option

-Fixed a bug when using the get command with search options where it downloaded as if the opts weren't specified

It's currently attached to the first post of this thread; when it gets through the Cemetech/ticalc.org download queues you will be able to get it there.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on February 06, 2011, 02:27:07 am
Hmm I see. Sorry to hear about their RSS issues. X.x

Anyway nice features addition :D
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on February 18, 2011, 10:00:49 am
Well, not sure if you're still working on this, but what about unzipping the programs we choose to download?
Title: Re: ticalc.org "Package Manager"
Post by: calcdude84se on February 22, 2011, 07:50:29 am
-Added an option to extract all .zip archives on download, named like:

   "83plus-asm-games-generate-zip"
Support's here for .zip, it seems, Scout ;) However, that doesn't mean there's .tar.gz support yet, I'd assume.
Title: Re: ticalc.org "Package Manager"
Post by: Munchor on February 23, 2011, 10:01:42 am
-Added an option to extract all .zip archives on download, named like:

   "83plus-asm-games-generate-zip"
Support's here for .zip, it seems, Scout ;) However, that doesn't mean there's .tar.gz support yet, I'd assume.

Oh thanks calcdude, I didn't notice it :P
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on February 25, 2011, 12:43:39 am
That would be a good addition, since there are such files on ticalc.org.  That's the main Linux zipping format, right?
Title: Re: ticalc.org "Package Manager"
Post by: willrandship on February 25, 2011, 12:47:47 am
Yes, but its not exactly painful for us linux lovers to use zips, or pretty much anything :P when I see tar.gz I think of a source file, since most things I dl come in zips.


EDIT: seriously though, I can compress and extract install EXEs for their contents. ;) Zips are nothing.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on February 28, 2011, 02:03:21 am
Ah ok. Personally i like zip and rar, but I use zip more because most computers can open zip files by default.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on August 26, 2011, 12:31:17 pm
So, I finally remembered that tev suggested parsing the file's category page to get the info page for a file.

So, this morning, I wrote code to do just that, modelling the output on yum's info command. Here's some sample output. I didn't feel like making a screenshot, so I copy-pasted my terminal output into a code tag.

Code: [Select]
$ ./calcpkg.py info "Wacky Fun Random Numbar Generator Operating System"
 
Name          : Wacky Fun Random Numbar Generator Operating System
Author        : Michael Vincent ([email protected])
Category      : DOS Utilities
Date Uploaded : Tue Aug 10 15:23:59 2004
File Size     : 17,780 bytes
Documentation : Yes
Source Code   : Yes
Description   : The fun of Wacky Fun Random Numbar Generator returns with this complete operating system, handwritten in x86 assembly. This is the epitome of must-download files.

$ ./calcpkg.py info -g -c 83plus "Wacky Fun Random Numbar Generator"
 
Name          : Wacky Fun Random Numbar Generator v1.00000069
Author        : Nick Disabato ([email protected])
Category      : TI-83/84 Plus Assembly Games
Date Uploaded : Mon Aug  9 01:59:46 2004
File Size     : 2,736 bytes
Documentation : No
Source Code   : Yes
Description   : DOOOOOD THIS PROGRAM IS THE GREATEST L@@K MUST DOWNLOAD!!! A-1 SUPER!! YESSSSS! RUN WITH ASM() AT HOMESCREEN!!!!

Name          : Wacky Fun Random Numbar Generator v1.00000069
Author        : Nick Disabato ([email protected])
Category      : TI-83/84 Plus BASIC Games (Chance/Guessing)
Date Uploaded : Wed Jul 26 03:50:32 2000
File Size     : 1,835 bytes
Documentation : Yes
Source Code   :
Description   : DOOOOOD THIS PROGRAM IS THE GREATEST L@@K MUST DOWNLOAD!!! A-1 SUPER!! YESSSSS!


As you can see, "info" takes all the same arguments as get/install and search/list.

The one thing I haven't done is make it handle multiple authors (which is why I'm not releasing right now). And because it does HTML parsing (whereas most of the other commands use the local index files), if you ask for info on multiple files at once it will be slow.

Also, before, the file's line encoding was Windows, which meant that you couldn't run './calcpkg.py', you needed to run 'python calcpkg.py'. Now, the output is Unix and both invocations work fine.


And also, I finally read the above posts (:P), and I'll look at adding auto-un-tar support too.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on August 26, 2011, 09:40:23 pm
About nine hours later... I've released version 1.0!

It's available from ticalc.org here for Windows (http://www.ticalc.org/archives/files/fileinfo/433/43348.html) and here for Linux (http://www.ticalc.org/archives/files/fileinfo/433/43369.html).

As part of this release, I completely restructured the program. Before, it was a little clunky- there was one Python script, you had to have it in the same directory as the index files and where things were downloaded to. After doing the above, I rewrote the script so there was a script (calcpkg) and a Python package (ticalcDotOrg).

So what does that mean? Well, for one, you don't need to worry about where the index files are anymore. And the system now automatically downloads to your home downloads folder- so on Windows that would be C:\Users\username\Downloads, and on Linux that's /home/username/Downloads.

It also means you don't need to type "python calcpkg.py" anymore, you can just type "calcpkg.py". (On Linux, I removed the ".py" suffix, so you didn't have to type "calcpkg.py" and could just type "calcpkg". However, Windows apparently didn't like that, so for Windows it's still called calcpkg.py.)

And I did get the install command to automatically extract tar-compressed files too.

To install calcpkg, you have a large number of options. On Windows, you can run either of the executables (one is for win32, one is for amd-win64, or 64-bit), or you can extract the zip archive and run "python setup.py install". On Linux, I've provided an RPM package for Fedora, OpenSUSE, Mandriva, etc. users. Python can actually automatically make rpm packages, which is a nice feature (especially since I use Fedora :) ). Unfortunately, there is no such support for making .deb packages (at least, not in the official distutils). So users of other Linux systems will have to extract the .tar.gz file and run "python setup.py install".
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on August 26, 2011, 09:44:28 pm
That is awesome TC01 :D
Title: Re: ticalc.org "Package Manager"
Post by: Eeems on August 26, 2011, 09:44:58 pm
If you want I can setup a package for pacman and host it on my repo. That way all the arch users who use my repo can install it with pacman -S calcpkg :)
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on August 26, 2011, 09:59:03 pm
If you want I can setup a package for pacman and host it on my repo. That way all the arch users who use my repo can install it with pacman -S calcpkg :)

That'd be great, Eeems. :)
Title: Re: ticalc.org "Package Manager"
Post by: Eeems on August 27, 2011, 12:44:57 am
If you want I can setup a package for pacman and host it on my repo. That way all the arch users who use my repo can install it with pacman -S calcpkg :)

That'd be great, Eeems. :)
Alright I get working on it then

EDIT: Ok done, I think. Anybody who uses arch and wants it, feel free to add my database to /etc/pacman.conf
Code: [Select]
[omni]
Server = http://withg.us.to/eeems/$repo
Server = http://repo.julosoft.net/$repo/os/$arch
then run
Code: [Select]
pacman -Sy calcpkgto install it
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on August 27, 2011, 02:18:19 am
Nice stuff Eeems :D
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on September 02, 2011, 01:45:14 pm
I've uploaded 1.1 to ticalc.org and Cemetech archives. This is just a minor bugfix update; I fixed the clean command and the logging system (both of which I inadvertently broke with the 1.0 update/rewrite). Clean now just deletes the index files (in case they become corrupted or something). As for logging, it is enabled by default in the Linux version (and logs to /tmp/calcpkg.log). It's disabled for now under Windows until I figure out what exactly I want to do with it there.

And I combined the -n and -p options to one global -y, --assume-yes option (having two opt switches that did the same thing was silly).

The main point of this release, though, is a couple of fixes to the way the -f switch (search by archive file name rather than title) works. And that's because I wrote some Python code that uses calcpkg for Kerm's Sandpaper FTP gCn project, but it requires the fix to work properly.
Title: Re: ticalc.org "Package Manager"
Post by: Eeems on September 02, 2011, 04:21:26 pm
downloading and updating my hosted package now
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on November 20, 2012, 09:34:34 pm
It's been ages since I've posted about this project (or indeed at all)... I've been working on it recently, so I thought I'd bump this. (And I probably should update the first post while I'm at it- doing that now).

First off, there is now a github repository (https://github.com/TC01/calcpkg) for this project, so you can see I actually have been working on it lately. ;)

I'm vaguely approaching the milestone for a 2.0 release. Aside from vastly cleaned up and improved code (the only thing that has yet to be rewritten from the old 0.5/0.8 days is the actual index searching code, which someday probably should be), the big feature is support for multiple repositories.

Unfortunately I don't actually have any multiple repositories to show off quite yet. There are templates for cemetech and omnimaga under various stages of completion (and it's trivial to add more, they are just python files that get dropped into a directory), but for various reasons neither are quite yet acceptable. I'd love to have at least one of these working before I release 2.0 (yes, I actually still release projects!), but if that proves impractical I may just create a test repository of some sort to show off the feature.

But anyways... here's the current status of both- suggestions or whatnot are welcome:

The Cemetech one works pretty well, I just don't have an easy way of getting a list of all files (like this (http://www.ticalc.org/archives/files/fileinfo/56/5611.html)). I guess I could make an awkward hack of some sort that crawls through the archives, but I imagine it'd work a lot nicer if a script or something could be run off the Cemetech servers directly (again, like ticalc.org).

The Omnimaga one is a bit messier, because Omnimaga uses file IDs in file URLs rather than paths, the way Cemetech and ticalc.org do. To be more specific: a ticalc.org download URL points at /83plus/asm/games/filename.zip (or something), whereas an Omni download URL points at id=350 (or something). On the plus side, this makes it easier to get a list of all files- I simply start at file "1" and loop until I've gotten all n files, where n is the number of files in the archives (a statistic that's available elsewhere on the site). But on the other... it would break searching directly by "file name"- because the data that would need to be stored as "file name" would be file IDs (in other words, just a number), rather than something like "filename.zip".
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 20, 2012, 09:58:23 pm
Good to hear this is progressing again. :)

By the way, is getting ticalc.org files tricky when it comes to hotlinking? I remember that when someone posted a direct zip file link, it redirected to the directory listing or something.

Also glad you're getting Omni and Cemetech too :D. You should do TI-Planet as well :D (although in their case, like Omnimaga, a bunch of the files are links to a different server, such as TI OSes, rather than an uploaded file)
Title: Re: ticalc.org "Package Manager"
Post by: Juju on November 20, 2012, 09:59:29 pm
Hey welcome back ^_^

Actually, you can get the filename from the HTTP header.

(woo 4000th post :3)
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on November 20, 2012, 10:31:01 pm
Good to hear this is progressing again. :)

By the way, is getting ticalc.org files tricky when it comes to hotlinking? I remember that when someone posted a direct zip file link, it redirected to the directory listing or something.

Also glad you're getting Omni and Cemetech too :D. You should do TI-Planet as well :D (although in their case, like Omnimaga, a bunch of the files are links to a different server, such as TI OSes, rather than an uploaded file)

Hmm... I've never had issues with it. My code to download just gets a link to the direct zip and downloads said zip.

I'll add TI-Planet to the list of "things I'll hope to get working"- are there any other calc sites these days that still have sizeable download archives that are worth trying to support?

Hey welcome back ^_^

Actually, you can get the filename from the HTTP header.

(woo 4000th post :3)

I was in the middle of writing out a reply to this and then I realized I may misunderstood- when I click on the "download URL" button, the HTTP header will tell me what the file is that this link actually points at, instead of the "sa=downfile;id=number;" link?

In that case, then, it'll be much easier. :D I could use the "loop through all files" process to figure out the IDs, get the name they were uploaded under from their info page, and then do that to find out what the actual archive filename is. Still more complex than ticalc.org, but at least it'll work.
 
Mind you- it might be better to not do this, especially if this would increment the download counter each time I run it.... maybe it would be easier to just rewrite the search code and create a third index file that will store file IDs or something.
Title: Re: ticalc.org "Package Manager"
Post by: Eeems on November 20, 2012, 10:39:53 pm
I should probably reboot into linux and rebuild the omni repo to include a more recent snapshot of this :P
http://omni.eeems.ca/ <- I've been keeping it semi up to date.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 21, 2012, 12:40:17 am
There are also the following sites that are quite large in amounts of downloads, but since they died years ago, I'm unsure for how long they will remain online, so idk if it's worth it:

ti-bank.fr (still active. Over 1000 files)
planet-casio.com/Fr/ (still active. 1798 files)
casiopeia.net (still active. 84 files)
casiocalc.org (still active, but most download links are broken. Over 300 files)
casiokingdom.org (probably still active, 527 downloads)
calc.org (died in 2006. 2138 files)
calcg.org (died in 2010. Estimated 1000 files)
www.ti83plus.online.fr (died in 2009. 1300+ files)
ti83.free.fr (died in 2000. About 1000 files)

Hopefully the United-TI archives are brought back up one day.
Title: Re: ticalc.org "Package Manager"
Post by: TravisE on November 21, 2012, 12:48:19 am
Good to hear this is progressing again. :)

By the way, is getting ticalc.org files tricky when it comes to hotlinking? I remember that when someone posted a direct zip file link, it redirected to the directory listing or something.

Also glad you're getting Omni and Cemetech too :D. You should do TI-Planet as well :D (although in their case, like Omnimaga, a bunch of the files are links to a different server, such as TI OSes, rather than an uploaded file)
Hmm... I've never had issues with it. My code to download just gets a link to the direct zip and downloads said zip.

There is an “issue” with wget, because the server is set up to reject it for some reason. Which is dumb, because it can be trivially bypassed by using the option -U “any-non-wget-user-agent-string”. I think there is a hotlinking protection for images that goes by referrer headers, but I haven't checked to see if it's still active today.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on November 21, 2012, 11:20:00 am
There is an “issue” with wget, because the server is set up to reject it for some reason. Which is dumb, because it can be trivially bypassed by using the option -U “any-non-wget-user-agent-string”. I think there is a hotlinking protection for images that goes by referrer headers, but I haven't checked to see if it's still active today.

Oh, then I guess this is working because the useragent used by Python's urlllib doesn't get rejected.

Is there a reason why wget is set to be rejected, or is it just some old configuration setting that hasn't been changed for years?
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on November 21, 2012, 03:38:43 pm
Is wget related to hotlinking? If so, I guess it might have been to prevent other sites to hotlink images/files hosted there and thus, reduce bandwidth usage as much as possible, or on the other hand, encourage people to use their site directly.

I remember that back in 2004, Cemetech archives were entirely made of links to Ticalc.org files (probably so that every file download counts towards his ticalc.org stats), so that when  people downloads Kerm files from his Geocities site, it gets the ticalc.org zip files instead. Then one day, file hotlinking was disabled by ticalc.org, and Kerm was forced to manually update all his download section with new download links, and now the files are hosted on Cemetech instead (which also has its own download stats system now).
Title: Re: ticalc.org "Package Manager"
Post by: Eeems on November 21, 2012, 04:17:44 pm
wget is a command line file downloader. It in and of itself has nothing to do with hotlinking. People can use it to scrape files from sites though.
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on February 17, 2014, 09:44:26 pm
*resurrects this thread*

So, I've been working on this project lately again (on github: https://github.com/TC01/calcpkg).

I'm pleased to say that we have working support for Cemetech and mostly-functional support for Omnimaga!

Cemetech support is "complete"; however, it currently makes a list of files by spidering through the download categories. Hopefully, I'll be able to replace this soon with a master index file similar to the one ticalc.org and now Omnimaga have.

Omnimaga support uses Eeems' new way of browsing the archives; however, I haven't gotten around to implementing an info command to let you view information about files or fixing the ugly command line output.

When both of these are finished, I'll finally release version 2.0.

For those of you who weren't around 3 years ago when I first started working on this project: this is a piece of software that lets you browse ticalc.org from the command line, akin to a Linux package manager (apt-get, rpm, yum, pacman, etc). The libraries it uses to do this can be used by other people's applications to hook into ticalc.org without having to write a lot of messy HTML parsing code.
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on February 18, 2014, 12:08:12 am
This is good to hear. What would be cool is to eventually be able to download calc files from any big site via one single client :D
Title: Re: ticalc.org "Package Manager"
Post by: TC01 on July 16, 2014, 11:53:32 pm
This is good to hear. What would be cool is to eventually be able to download calc files from any big site via one single client :D

I could have sworn I replied to this back in February. :(  But that is indeed the goal!


*resurrects this thread yet again*

After growing impatient with myself, I've finally released calcpkg v2.0, three years after the last release to ticalc.org.

If you've read above, you're probably aware of some of the changes that have been sitting on github (http://github.com/TC01/calcpkg/) for quite a while, but to summarize...

-Calcpkg is now installable through pip! "pip install calcpkg" is probably the fastest way to get it, though I've updated the ticalc.org and Cemetech archives with the new release.
As a consequence of this, setuptools is now a dependency. Sorry.

-Support for Cemetech and Omnimaga, with an extensible system enabling more community site archives to be added! TI-Planet support is planned in the hopefully-not-three-years-away future.

-An overhaul of command line options and further modularization / code cleanup / etc of bits of the project. (At least, that's what my changelog claims, it's been so long...).

-Changes made by KermM for Sandpaper to the calcrepo backend were merged in as well.

(For a more detailed changelog, take a look at the git commit history on github).

If you forget what this thing is: it's a command line tool to query ticalc.org (and now other sites). As a quick and silly example, "calcpkg -r ticalc list Quadratic" will probably list all the correctly-spelled quadratic solvers on ticalc.org, and "calcpkg -r ticalc get Quadratic" would download them all (if, for some reason, you really wanted all of them).

The backend library is also available for anyone who wants to do something that requires having access to the {ticalc.org, Cemetech, Omnimaga} archives; as I mentioned above, components of calcpkg were used as part of Sandpaper.

If you have a feature request / bug report, either tell me about it here or make use of the issue tracker. :)

Also, the screenshots on the project pages are now out of date, so I should really update them...
Title: Re: ticalc.org "Package Manager"
Post by: DJ Omnimaga on July 17, 2014, 12:11:16 am
Awesome! Glad this is still updated and that Omnimaga/Cemetech are supported. Of course in the future TI-Planet addition would be nice. :)

"calcpkg -r ticalc get Quadratic" would download them all (if, for some reason, you really wanted all of them).

Who wouldn't want a beautiful grayscale quadratic solver? *.*
Title: Re: ticalc.org "Package Manager"
Post by: Eeems on June 24, 2018, 03:31:56 pm
Super necro here, but @TC01  I may have opened a PR to update calcpkg to support python 3