spi-tools's Issues
UserActivitiesView should limit search depth
Imagine we ask for:
count = 10
main=False
draft=True
others=False
on a user with 1 million edits but none to draft space. We'll iterate through all 1 million edits trying to find 10 drafts. There should be some circuit breaker which cuts the search off before then. Maybe never examine more than 10*count?
Add ability in index view to manually enter a case name
Sometimes [[Wikipedia:Sockpuppet investigations/Cases/Overview]] is out of sync (due to caching?), or you just want to work with an archived case.
This could also be used as a "combine result from two different cases" scenario (#27).
Add more data to sock-select page
Indicate whether sock is blocked, add links to user page, contributions, etc
Add oauth support
Get django.db.backends to stop logging at DEBUG level
Expose SPI case parsing as a REST API
Generate a unique id for each request.
Include that in the log file, and on the debug data card.
Add server pid and start time to debug status block
Timecard javascript fails with embedded ampersand in user name
https://spi-tools-dev.toolforge.org/spi/timecard/Jaktheladz?users=Fish%26Chimps
The & should probably not be escaped in the javascript?
<canvas id="chart-Fish&Chimps" width="300" height="150"></canvas>
var ctx = $(document)[0].getElementById('chart-Fish&Chimps').getContext('2d');
UserActivitiesView should handle page titles with ":"
[[Batman: The Dark Knight (roller coaster)]] is in main space!
Create javascript shim to open SPI Tools when looking at a given SPI case page
Typing master name in pop-up doesn't set field properly
Click on the "Case (sockmaster) name" popup. Clear the default entry, type the name of a different case, and accept. You get a "This field is required" error.
IndexView.post() should not build raw urls
shortcuts.redirect()
"A view name, possibly with arguments: reverse() will be used to reverse-resolve the name"
Consider migrating js files from the template directories to static
Add a way to adjust history depth in user activity view
Some combination of "most recent N events" and "specified date span"
Provide a way to logout
Consider uninstalling django.contrib.admin middleware
Make timecard display more compact
Enable logging to stdout
Add search for G5-able pages
IP link in ip-analysis view is broken
$ is not defined in index.js
(index):133 Uncaught ReferenceError: $ is not defined
at (index):133
(anonymous) @ (index):133
Override margin-bottom
This is causing bad alignment in sock-select.dtl:
label {
margin-bottom: .5rem;
}
Handle multiple sockmasters
ArchiveError at /spi/ip-analysis/Bideliran/
Multiple sockmaster names found: {'Bidelirania', 'Bideliran'}
Not sure what we should do there, but at least not crash.
Links on /spi/ip-analysis/ don't go anywhere
Add auto-restart capability
Consider https://pypi.org/project/watchdog/
Write template tags for wikilinks
Clean up logging
- Make sure file rotation is really happening
- Add timestamps to log files
- Consider running my own private syslog instance
Make sock-select table sortable
Convert template includes to template inheritance
Add page moves and other log extracts to user activity view.
Implement bootstrap4 CSS for selectize
Handle duplicate dates
See https://en.wikipedia.org/wiki/Wikipedia:Sockpuppet_investigations/Vallabhas/Archive. There's two three (distinct) 12 April 2020 entries. We need to be able to handle this correctly.
selectize is not a function
In IndexView:
jquery.slim.min.js:2 jQuery.Deferred exception: $(...).selectize is not a function TypeError: $(...).selectize is not a function
at HTMLDocument. (https://spi-tools-dev.toolforge.org/spi/:231:24)
at l (https://tools-static.wmflabs.org/cdnjs/ajax/libs/jquery/3.3.1/jquery.slim.min.js:2:29567)
at c (https://tools-static.wmflabs.org/cdnjs/ajax/libs/jquery/3.3.1/jquery.slim.min.js:2:29869) undefined
Make [[links]] active in user-activities view.
Unify test organization
We've got test_*.py and *_test.py styles. We should use the same style for all of them.
Points to consider: some tests need to run under manage.py because they depend on django configuration. But, raw unittest is faster. Maybe we need a convention to say which tests need django?
Display version information on every page
Enable logging even if DEBUG == False
Stop using CDN for resources
See https://www.mediawiki.org/wiki/Requests_for_comment/Content-Security-Policy
Javascript and CSS should be downloaded and served locally as static files.
Handle SPI parsing errors
https://tools.wmflabs.org/spi-tools-dev/spi/spi-sock-select/Alex%20Neman/?archive=1
Expected exactly 1 level-3 heading, found 6
Handle cache busting
See https://github.com/jaddison/django-cachebuster
Consider using {% static %} tag.
Add ability to combine multiple SPI cases/archives
Deduplicate users in spi-sock-info
IP Analysis generates broken URLs for links.
Parse archive title(s) from case page
On occasion, the archive page isn't where you expect it to be. On even more rare occasions, there might be more than one archive. We should handle these correctly.
Add validator to UserInfoForm to require at least one namespace to be selected
Add option to sock selector to pick up additional socks from Category:Wikipedia sockpuppets of...
Selectize cleanup
Either finish tearing out the rest of the selectize support in spi.forms.CaseNameForm, or make selectize work again (see af32e87). If we keep the support, spi.forms.SelectizeField certainly needs to be refactored to not do mwclient API calls inside a form.
Recognize {{user}} in addition to {{checkuser}}
Read DJANGO_SECRET from config.ini file
Right now, we read it in ~/.bash_profile. That should happen in app.py, just like all the other django environment.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.