NetTally - Vote tally program

Updated to preview 6 for 3.0 and preview 3 for 2.2 (should just make the preview the same number). This fixes several partitioning bugs, and adds the ability for the program to preserve struck-through text in the content area of vote lines.

Testing would be appreciated. (Downloads)
 
2.0.2 (July 21, 2019) (Downloads)

* Bug fix: Vote lines were being duplicated if you changed partition method between tallies.

This is just a quick bug fix release for the 2.0 line. 2.2 is getting close to release.
 
Preview 8 is out, and I think things are just about ready for release.

Preview 8 adds a feature that I found out that the built-in tally system has: A user can update any plan they wrote in a later post. Since it's fairly easy to do now, I added that in.
Edit: Fixed wording of above sentence.

Conditions:
Only the original user can update a given plan.
The plan must have the same name (obviously).
The new plan must be in a later post (correctness in case of multiple passes).
The new plan must not be a simple reference to the old plan (ie: a single line vote for the original plan, particularly a proposed plan)
The new plan must be different from the old plan.

To enable this, there are two options:

A global option that may allow globally, disallow globally, or, in the case of the indeterminate stage, allow each quest to decide.

A per-quest option that will be used if the global option is indeterminate.

The global defaults to indeterminate, and each quest defaults to false. You can turn it on per-quest for testing, and, if you're happy with it, globally.

---

Also, preview 7 dealt with an issue with how XenForo2 formats the RSS threadmarks, so that should work better now.
 
Last edited:
NetTally preview 9 cleans up the last little bit of work I wanted to do. Let me know if anything is broken. If not, the new version will be out in a day or two.

Side note: Version 3 is now on .NET Core 3 Preview 7.
 
OK, I lied. There was one more thing that I just remembered people had asked for, way back when, and I realized I could implement fairly easily. Thus preview 10 is available.

What is the new feature? Well, consider the following:

Vote Tally : Renascence: A Homura Quest | Page 394 | Sufficient Velocity [Posts: 9839-9856]
For the Living (ASOIAF Quest) - Q | Page 133 | SpaceBattles Forums [Posts: 3323-3370]
##### NetTally 2.2.0pre10

[X] Lord Mathis Rowan- Your uncle. One of the most capable men you've ever met. For the moment, sworn to House Tyrell.
No. of Votes: 22
[X] Enjou
[X] Aabcehmu
[X] afterthought53
[X] Athreya V
[X] Awkane
[X] blackshadow111
[X] BlaUSEast
[X] Chucho99
[X] Clemenal
[X] Erzherzog_Karl
[X] falliant
[X] Gamerlord
[X] godofsmallthings
[X] Icefyre
[X] Karmic Acumen
[X] Kingofbooks
[X] Neuron
[X] notbirdofprey
[X] Quiet Fury
[X] Schnolhamor
[X] Usernam
[X] Whitefire

[X] Protect Ruki!
-[X] There's a light shining in one of the Church's windows. Seek it out.
No. of Votes: 4
[X] Entropy Judge
[X] Signupname
[X] Spi.Guyver
[X] TheBleachDoctor

[X] Septon Mooton- One of your oldest companions. He is ever ready with a word of wisdom, and unafraid to set you straight.
No. of Votes: 4
[X] butchock
[X] cgobyd
[X] Erik
[X] skaro

[X] Protect Ruki!
-[X] You can hear a distant song from the depths. Reach out to it.
No. of Votes: 2
[X] SpeckofStardust
[X] Hyp3rB14d3

[X] Ser Ryam Rowan
No. of Votes: 2
[X] Mr Apollo
[X] Guy Man

[X] Lord Roland Crakehall- A man of honor. A fierce and driven leader. Well acquainted with the West. Eager to prove his worth.
No. of Votes: 1
[X] Syn0

[X] Lord Sebaston Farman- A cunning and wise lord. Returned after taking sick on the journey to the Rock. Zealous in his service.
No. of Votes: 1
[X] Salo

[X] Write-in. Lord Paxter Redwyne- Our father. He controls the Redwyne fleet; the largest fleet in Westeros.
No. of Votes: 1
[X] Tabi310

[X] Write-in: Lord Hoster Tully
No. of Votes: 1
[X] NúmenoreanNazgûl

[X] You can hear a distant song from the depths. Reach out to it.
No. of Votes: 1
[x] RDJ


Total No. of Voters: 39

You may have noticed an extra line or two in there.

More specifically, you can now link two or more quests together, and tallying any of them will tally all at the same time, merging all results.

So, tally for multi-site quests.

Each individual quest will be read off the forum according to its own preferences (primarily filters), though the final tally will be subject to the preferences of the active quest (eg: case sensitivity, partitioning mode, etc).

Individual voter links connect to their original post on whichever site it was made on. Note: If the same voter (or at least a user with the same name) votes on both sites, one can overwrite the other. I also need to implement a check for timestamps to make sure the most recent one is kept.

You can configure which quests a given quest is linked to in the third tab of the Quest Options window: Linked Quests.

Linked quests are saved in the config file. There may be issues with cross-program updating if you're running multiple instances of NetTally at the same time; I haven't looked into all paths there yet.
 
Release 2.2/3.0 (July 26, 2019) (Downloads)


Review of the Update

With the imminent release of .NET Core 3, and its ability to handle WPF programs, I did a rewrite/conversion of .NET to the full Core 3 level. This also allowed integrating new language features from C#8 and .NET Standard 2.1.

Because there were no constraints during the rewrite, it ended up almost entirely gutting the original and rebuilding it from scratch, allowing certain significant architectural improvements that I hadn't managed to get working before.

Once completed, it allowed me to backport everything to the 2.0 line. Newer language features had to be removed, but otherwise they have feature parity. This was set to be version 2.2, as a significant change over 2.0, but not version 3, since that's already occupied by the .NET Core 3 version.

This also occurs at the same time as Sufficient Velocity is upgrading to XenForo 2, so various changes have been made to keep up with that, too.


Changes

While there are massive changes under the hood, there are only a few new user-facing features.

* New voting types have been added (scoring and approval), which may integrate flexibly with standard voting. Rank types are still treated separately. Also, ranking should use #1 rather than just 1, to indicate rank.
* Struck-through text in a vote line's content area is retained.
* A user may update any plans he made by posting an updated version in a later post, rather than needing to update the original post with any changes to the plan. Only the original user may update the plan in this way. This is optional, and depends on either global or quest settings.
* Compact mode is no longer restricted to just the first couple lines of a vote, and shows combined voting for any degree of depth.
* The commandline version was missing a couple options that had been added. Got that updated.
* The wiki has been fully updated with all the latest changes, and reformatted to make it a bit easier to read.
* phpBB forums should work now.
* Quests can be linked to tally them simultaneously. This should be helpful for quests that are run on multiple sites at the same time.


Requirements

2.2 is based on .NET Framework 4.7.2, which is where it should remain for the forseeable future. Microsoft has transitioned the full Framework into Long Term Support mode, meaning they won't be adding new features, but will continue to support it and provide bug and security fixes. If you're using NetTally today, you should be fine on this version.

3.0 is based on .NET Core 3, which is the line where all new development in .NET will happen, and likewise new developments for NetTally. This is also more a more cross-platform framework, and will be the basis for attempts to make builds of NetTally for Linux, Android, Blazor, etc. It's also the line that will allow a self-contained build, if you're interested in that.

The commandline is currently based on .NET Core 2.2 and NetTally 2.2, and should remain stable. I'm considering adding the ability to store user config information, like the main program. There's only a few people that use it, and I'm not sure what they're interested in.

Overall, the upgrade to version 3 is mainly useful for those with specialized needs, or who might want a cross-platform version of the program at some point. Others can stay on the V2 line, with 2.2.
 
2.2.1 and 3.0.1 patches released. (Downloads)

Bug fix for both:
* Tally wasn't aborting when pages failed to load.

Bug fixes for 3.0 line:
* Updated package versions weren't being set properly during build.
* .NET Core 3 Preview 7 broke the self-contained build process.
 
2.2.2 and 3.0.2 released. (Downloads)

* Update log handling.
* Tracking post authors uniquely (combining the username and the post ID) is now its own option, instead of part of Debug Mode. It still resets on program restart.
* Fix bug with resetting global options.
* Improve thread safety.
* Fix cookies for "questionablequesting.com" host. Previously, only "forum.questionablequesting.com" was recognized.
* Fix bug related to a XenForo thread URL not ending with a /.
 
Downloads

Release for versions 2.2.3 and 3.0.3.

* Upgrade various packages
* Fix SB scanning issue

As a reminder, the 2.2 line uses .NET Framework, and the 3.0 line uses .NET Core 3 (now using the release version). If you're not sure which you want, get the 2.2 line. If you want the self-contained build, get the 3.0 self-contained zip file.
 
Downloads

Release for versions 2.2.4 (.NET Framework on Windows) and 3.1.0 (.NET Core 3.1).

* Update framework requirements to .NET Core 3.1 (LTS) for the v3 branch.
* Update supporting packages to new LTS for the v3 branch.
* Fix issue where tasks wouldn't be re-applied when re-running a tally.
* Improve build process.
* Migrate commandline version to Core 3.1 LTS. Only the Windows desktop version will be published for the v2 line from now on.
 
I didn't have time last night to elaborate on things, so I'll provide a bit more detail in this post.

First, the v3 line of NetTally has been moved up to .NET Core 3.1, the LTS release made last month (long term service; it means it gets updated for 3 years, instead of expiring after 1 year). That takes it off the preview builds of .NET Core 3 that the previous NetTally releases used. Both the standard app and the self-contained app are available. (The standard app requires .NET Core 3.1 to be installed on the computer already, while the self-contained one does not, though that means the self-contained zip file is about 60 MB larger than the portable one.)

Also because of that, the commandline version of NetTally got moved from .NET Core 2.1 to .NET Core 3.1. In addition to getting the improved core codebase, it also means that the commandline version is a proper executable now, instead of just a DLL. That means you can run it as:

Code:
nettally.exe <options>

instead of

Code:
dotnet nettally.dll <options>

which should be a bit more convenient.

The v3 line got its version updated to 3.1.0, to reflect the change in the runtime environment from 3.0 to 3.1.

That leaves NetTally 2.2.4 the only version being built for the .NET Framework (4.7.2).


On another note, I've been reminded that .NET Core does not do AnyCPU type handling for auto-switching between 32 bit and 64 bit architectures. I have to explicitly build for each of them, now. As such, I'll be posting both x86 (32 bit) and x64 (64 bit) zip files on the Github releases page for the v3 line from now on. Pick the one that matches your needs.
 
Version 2.2.6 (.NET Framework) and 3.1.1 (.NET Core 3.1) released. Downloads

  • Handle Cyrillic X character
  • Update support libraries (.NET Core 3.1.9)
  • Various code cleanup and minor bug fixes.
 
Version 3.1.2 released. Downloads

Minor update on the v3 line to fix the URL links at the bottom of the window. What used to work on the .NET Framework doesn't work in .NET Core, and I hadn't realized. Should be fixed now.
 
Version 2.2.7/3.1.3 released. Downloads

* Fix comparison bug in RIR ranked voting calculations.

There was a bug in the RIR algorithm which could potentially lead to incorrect totals. Thanks for mailm for pointing me at it.
 
Version 2.2.8 (.NET Framework) and 3.1.4 (.NET Core 3.1) have been released. Downloads
  • Don't count plan entries when totalling support for a vote.
  • Adjust display order of approval votes.
  • Adjust display order of voters for normal, score, and approval votes.
  • Adjust display order of voters for rank votes.
  • Show voters who did not vote for ranked votes.
  • Rank votes can properly handle ranks above 9, now. (Up to 99)
 
Last edited:
Version 4.0.0 released. Downloads.

  • Updated to .NET 7
    • If you get one of the non-self-contained builds, you will need to install .NET 7 on your system. The self-contained builds include the .NET runtime in them.
  • Incorporates Avalonia UI code from Miz Mahem. This allows running NetTally in Linux. It uses X11 for rendering.
    • Due to certain limitations, the tool to rearrange tasks when managing votes isn't available at this time.
    • The -dep version is framework-dependent, if you install .NET 7 yourself. The -sc version is self-contained.
    • An Avalonia build that runs on Windows is possible, but won't be part of the default downloads unless requested.
  • Self-contained builds are now built in single-file mode, so you get one large file (with a few support files) instead of dozens of small files.
    • Unfortunately code trimming isn't fully working, so the size reduction that that provides doesn't apply.
  • Various bug fixes have been made, but no notable user-facing changes.
 
Version 5.0.0. Downloads

NetTally has been updated to .NET 8 (the latest long-term support version of .NET). If you don't get the self-contained version, make sure you update your installed version of .NET.

  • Questionable Questing access has been updated to go along with the forum update to XenForo 2.
  • Quests 'remember' their last tally, so switching between quests won't cause you to lose tally results.
  • Fix a variety of minor bugs.
  • There's been a substantial rewrite, using a new UI framework which should make it feasible to expand which platforms NetTally runs on. This is currently untested.
  • The new UI framework is Avalonia. Downloads without that moniker use the standard WPF UI framework.
 
Version 5.0.2 released. Downloads
  • Multiple implicit plans won't collide if they are voted on at the same time. Fixes issue #12. (Actually fixed in 5.0.0, but forgot to mention it.)
  • The HR tag has been updated to account for changes in SpaceBattles and QuestionableQuesting.
  • A total vote count has been added per task.
Also, all x86 versions aside from the self-contained Avalonia build have been removed, as they aren't being downloaded. Just the x64 builds will be published from now on.
 
Version 5.0.3 released. Downloads
  • Add closing [/HR] for symmetry.
  • Add an [HR] before the final vote count.
  • Add Voter Summary display mode option, which displays just the users that voted for each task.
  • Fix notification on Copy to Clipboard button.
  • Fix notification/Undo in Manage Votes window.
  • Fix WPF Manage Votes window.
 
Version 5.0.5. Downloads
  • Bug fix: Rank votes failed because of duplicate entries.
  • Bug fix: Datetime conversion failed if user timezone had a positive offset.
  • Bug fix: Issues with regex matching on non-XenForo forums.
  • Feature: Allow setting the forum type in the quest information dialog.
 
Back
Top