| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
I think there is a problem in the logic here but at least this gets me
past the initial sync.
|
| |
|
| |
|
|
|
|
| |
Suggested-by: Doug Freed <dwfreed@mtu.edu>
|
|
|
|
| |
TS at start
|
|
|
|
|
| |
Sometimes don't need to cancel out, so save the updates after the last
modulo 100 to DB too :)
|
|
|
|
|
|
| |
This way if we got stuck and re-run much later (or it has exceeded the buffer
time constant), we'll at least sync the oldest ones first, so we always end
up being less out of date with the oldest sync ts.
|
|
|
|
|
|
|
|
| |
Maintains a sync timestamp to skip recently synced packages, so if a
previous run got stuck, we can skip re-doing it too soon.
Saves the DB transaction after every 100 packages, because packages.g.o
seems to rate-limit us, so at least we will have things saved into DB
periodically to cancel out when we get stuck and restart.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
description we will get from package.g.o per-package detailed json,
last_sync_ts will be used to record when that detailed json was
last pulled, so that we can rate-limit as-needed.
If still using sqlite, can DROP TABLE package; and re-create with
./manage.py init
or add the columns manually
ALTER TABLE package ADD COLUMN description VARCHAR(500);
ALTER TABLE package ADD COLUMN last_sync_ts TIMESTAMP NOT NULL;
though that NOT NULL vs default on sqlalchemy's side for now might
pose an issue, solving of which is an easy exercise for those that care
instead of recreating.
|
|
|
|
| |
No POST handling yet.
|
| |
|
|
|
|
|
|
| |
This should ensure requests will handle UTF-8 fully correctly for us
Suggested-by: Doug Freed <dwfreed@mtu.edu>
|
|
|
|
|
|
|
|
|
| |
Need to feed response.content bytestring into ElementTree, not response.text.
With the latter ET seems to figure it's already decoded and goes all latin-1 on us.
From response.content bytestream it notices the UTF-8 encoding XML markup and does
things right.
Diagnosed-by: Doug Freed <dwfreed@mtu.edu>
|
|
|
|
|
| |
... until we don't have master data for this that we shouldn't overwrite.
Also remove a now done TODO item and tweak a debug string I messed up pre-commit.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
As this is a new table, just re-doing "./manage.py init" should add it to db,
while keeping old data.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
save resources
We shouldn't need SQLALCHEMY_TRACK_MODIFICATIONS, so just disable it as suggested to
avoid the warning and save these little resources. This is a flask-sqlalchemy specific
session event tracking thing; sqlalchemy itself provides its own mechanism for this
these days, and if we need something like that, we should probably use those, not
this flask-sqlalchemy thing.
|
|
|
|
|
|
|
|
|
|
|
| |
Now uses extra Flask-Classy dependency for nicer routing and organization.
Stylesheet is Gentoo Tyrian loaded from standard CDN location.
Reorganizes some of frontend to frontend module, which necessitates telling
Flask it's "frontend", not "backend" (for templates to work without passing
custom paths). If reorganization goes this route and completes, all the
flask parts should end up in frontend module, making this hack obsolete.
Though backend might want to use Flask-Sqlalchemy too, so needing the Flask
app object, but not sure yet.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This just prints the first packages versions JSON data out and exits,
so just some initial debug code out of the way to sync in projects.xml
first, as sync_versions will need to reference projects and maintainers,
so better to finish projects.xml sync first.
|
| |
|
|
|
|
| |
Also add manage.py commands to call the sync steps individually for testing
|
| |
|
|
|
|
|
|
|
| |
Now this should make http://localhost:5000 show the available categories:
./manage.py init
./manage.py sync_gentoo
./manage.py runserver
|
|
virtualenv -p python3 venv
venv/bin/activate
pip install -r requirements.txt
./manage.py runserver --help
./manage.py shell for a python shell with flask instance exported into "app" var
./manage.py runserver
|