+1(514) 937-9445 or Toll-free (Canada & US) +1 (888) 947-9445

Citizenship tracker tracker application (in Python)

theeeiam

Full Member
Mar 11, 2021
40
23
I created a program that automatically checks the citizenship tracker and alerts me when the status updates. It served me well during my application process (I just got the oath date today). I'm sharing the source code here. Since this was just for personal use, I never made it overly user friendly, and you probably have to be somewhat familiar with the Python ecosystem to make it work. But here it is in case it's useful for anybody:

https://pastebin.com/bZFsp1fD

You can save this in a directory as main.py. Additionally there should be a file called config.yaml in the directory, that looks like this:

Code:
uci: "1234567890"
password: "my-tracker-password"
last-updated: 2023-08-14
notification-sound: true
notification-matrix: true
notification-desktop: true
wait: 5
sound: "/usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga"
sound-player: "paplay"
matrix-home-server: "matrix.example.com"
matrix-username: "bot"
matrix-password: "bot-matrix-password"
matrix-room: "!AbCdEfGhIjKlMnOpQr:matrix.example.com"
ceremony-started-check: true
Of course, you'd have to fill in your actual UCI and password, and the date of the last update. The application will alert you if a new item appears with a date after last-updated, and/or the ceremony changed from "Not started" to "In progress" (that is controlled by the ceremony-started-check boolean parameter).

There are three modes of alert: desktop notification (for XDG-type desktops, so Linux and related systems), playing a sound, and sending a message through the Matrix protocol. The configuration file should be pretty self-explanatory. If you put a file called Canada.png in the same directory, it will show up in the desktop notification. You should choose a sound file that exists on your system, and set the sound player to something that you can use to play sounds from the command line (e.g. aplay or paplay on Linux).

Every time the code runs, it logs into a file called tracker.log. If there is an update, once an alert is issued, a file called STOP is generated which stops the application checking again until the STOP file is removed (then you should also modify the last-updated config, or it will alert you again for the same thing).

I've been checking it every hour by using this Cron line:

Code:
cannot be submitted
Change the bus address as suitable for you (usually you'd replace 1000 with your user id).

From the logs I see that occasionally a check will fail, maybe once every few days. But I sometimes connect to a commercial VPN, and then it always fails. The tracker website blocks connections from that VPN and you can't make an exception because it's behind Amazon CloudFront.
 

jojee2k6

Hero Member
Sep 6, 2016
748
231
I created a program that automatically checks the citizenship tracker and alerts me when the status updates. It served me well during my application process (I just got the oath date today). I'm sharing the source code here. Since this was just for personal use, I never made it overly user friendly, and you probably have to be somewhat familiar with the Python ecosystem to make it work. But here it is in case it's useful for anybody:

https://pastebin.com/bZFsp1fD

You can save this in a directory as main.py. Additionally there should be a file called config.yaml in the directory, that looks like this:

Code:
uci: "1234567890"
password: "my-tracker-password"
last-updated: 2023-08-14
notification-sound: true
notification-matrix: true
notification-desktop: true
wait: 5
sound: "/usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga"
sound-player: "paplay"
matrix-home-server: "matrix.example.com"
matrix-username: "bot"
matrix-password: "bot-matrix-password"
matrix-room: "!AbCdEfGhIjKlMnOpQr:matrix.example.com"
ceremony-started-check: true
Of course, you'd have to fill in your actual UCI and password, and the date of the last update. The application will alert you if a new item appears with a date after last-updated, and/or the ceremony changed from "Not started" to "In progress" (that is controlled by the ceremony-started-check boolean parameter).

There are three modes of alert: desktop notification (for XDG-type desktops, so Linux and related systems), playing a sound, and sending a message through the Matrix protocol. The configuration file should be pretty self-explanatory. If you put a file called Canada.png in the same directory, it will show up in the desktop notification. You should choose a sound file that exists on your system, and set the sound player to something that you can use to play sounds from the command line (e.g. aplay or paplay on Linux).

Every time the code runs, it logs into a file called tracker.log. If there is an update, once an alert is issued, a file called STOP is generated which stops the application checking again until the STOP file is removed (then you should also modify the last-updated config, or it will alert you again for the same thing).

I've been checking it every hour by using this Cron line:

Code:
cannot be submitted
Change the bus address as suitable for you (usually you'd replace 1000 with your user id).

From the logs I see that occasionally a check will fail, maybe once every few days. But I sometimes connect to a commercial VPN, and then it always fails. The tracker website blocks connections from that VPN and you can't make an exception because it's behind Amazon CloudFront.
Will give it a try as being noob, if a rolling stone gathers no moss, will let you know :) whats the command line?
 
Last edited:

Achilles23

Full Member
Oct 12, 2023
38
3
I created a program that automatically checks the citizenship tracker and alerts me when the status updates. It served me well during my application process (I just got the oath date today). I'm sharing the source code here. Since this was just for personal use, I never made it overly user friendly, and you probably have to be somewhat familiar with the Python ecosystem to make it work. But here it is in case it's useful for anybody:

https://pastebin.com/bZFsp1fD

You can save this in a directory as main.py. Additionally there should be a file called config.yaml in the directory, that looks like this:

Code:
uci: "1234567890"
password: "my-tracker-password"
last-updated: 2023-08-14
notification-sound: true
notification-matrix: true
notification-desktop: true
wait: 5
sound: "/usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga"
sound-player: "paplay"
matrix-home-server: "matrix.example.com"
matrix-username: "bot"
matrix-password: "bot-matrix-password"
matrix-room: "!AbCdEfGhIjKlMnOpQr:matrix.example.com"
ceremony-started-check: true
Of course, you'd have to fill in your actual UCI and password, and the date of the last update. The application will alert you if a new item appears with a date after last-updated, and/or the ceremony changed from "Not started" to "In progress" (that is controlled by the ceremony-started-check boolean parameter).

There are three modes of alert: desktop notification (for XDG-type desktops, so Linux and related systems), playing a sound, and sending a message through the Matrix protocol. The configuration file should be pretty self-explanatory. If you put a file called Canada.png in the same directory, it will show up in the desktop notification. You should choose a sound file that exists on your system, and set the sound player to something that you can use to play sounds from the command line (e.g. aplay or paplay on Linux).

Every time the code runs, it logs into a file called tracker.log. If there is an update, once an alert is issued, a file called STOP is generated which stops the application checking again until the STOP file is removed (then you should also modify the last-updated config, or it will alert you again for the same thing).

I've been checking it every hour by using this Cron line:

Code:
cannot be submitted
Change the bus address as suitable for you (usually you'd replace 1000 with your user id).

From the logs I see that occasionally a check will fail, maybe once every few days. But I sometimes connect to a commercial VPN, and then it always fails. The tracker website blocks connections from that VPN and you can't make an exception because it's behind Amazon CloudFront.
Does this code still works? Will it make any negative impact on my application if they caught my using this code? can they block my ip if being caught? Please let me know I am non IT guy just curious.
 

Seym

Champion Member
Nov 6, 2017
1,720
843
Does this code still works? Will it make any negative impact on my application if they caught my using this code? can they block my ip if being caught? Please let me know I am non IT guy just curious.
It's just an automated equivalent to someone obsessively checking the tracker themselves many times a day. There's nothing illegal with it. IRCC doesn't care how often you check the tracker.
 
  • Like
Reactions: Achilles23

LargeLanguageModelBot

Star Member
Sep 6, 2023
118
42
While this is an interesting Python snippet, it's not really very necessary: Essentially, your tracker got refreshed every weekday morning at 5:30 ET. If there's a ghost update, the main thing always shows up in two days, regardless of whether it's a weekday or not. Therefore, if you just want to get updated but not obsessivly checking the tracker, just do that every day once. You won't miss anything.
 
  • Like
Reactions: Sugar2016

theeeiam

Full Member
Mar 11, 2021
40
23
Yes, it was just a substitute for obsessively checking manually which really relieved me because I was going to obsessively check anyway.

Actually all my updates came in between 04:00 and 04:30 ET, and it was nice to wake up to a message that some progress was made and what exactly happened. I will use it again in half a year for my partner's application, I'll post here if the code needs an update (if the tracker interface changed, but it probably didn't).