NATION

PASSWORD

Recruitment Automation Project Release Thread

Bug reports, general help, ideas for improvements, and questions about how things are meant to work.
User avatar
New Jaedonstan
Secretary
 
Posts: 39
Founded: Feb 27, 2017
Corporate Bordello

Recruitment Automation Project Release Thread

Postby New Jaedonstan » Thu Jul 15, 2021 6:11 pm

Image
| Info | Details | FAQ | Contact Us |

Info


Welcome to the host dispatch for the Recruitment Automation project! The Recruitment Automation Project is a manual recruitment tool that seeks to mitigate the pain of manual telegram recruitment on NationStates. Hosted by NJ's Helpful Guides, this locally-hosted project is sure to alleviate recruitment headaches and hand-aches alike. No more thousands of clicks to send just a few hundred telegrams! Check out the links below and please make sure to leave an upvote! Below, you can find links to all the information relating to the Recruitment Automation Project.

GitHub Repositories: This is where you can view and download the files for the various compatibilities. Please make sure to read the README in full prior to downloading the code.

Dispatch Announcement: This dispatch is the dispatch version of this forum post, with the privacy and free use policy.
Discord Support Server: This is where you can join, receive up-to-date announcements about the Recruitment Automation Project, ask the developer questions, obtain help, and discuss the project with other users! This is the preferred communication platform for contacting the developer.

About the Developer:

Lies Kryos, also known as NJ and Bassiliya, is the developer of the Recruitment Automation Project. Lies has been playing (and recruiting!) on NationStates since early 2017. Lies, as NJ, served for most of his early NS career in the region Conch Kingdom in several roles, culminating in his term as World Assembly Delegate. During that time, he experienced a recruitment high during the Drewpocalypse. Seeing the effectiveness of manual recruitment aids, Lies began work on researching a manual recruitment aid of his own. After founding the region Thegye under the name Bassiliya, Lies finished work on the Recruitment Automation Project. Published on GitHub in the spring of 2021, Lies continued development on the project. Now, with a new major release, version 1.1.0, Lies is opening up his work for public use by the NationStates community.



Details



What it basically does: The Recruitment Automation Project is a simple program that makes use of the NationStates API to speed up the recruitment process. Using the NS API, it retrieves and parses a list of new nations, up to eight at a time. Then, it sends those nations through a set of tests and checks to streamline your recruitment process and increase your recruitment potential. After these checks, the list of nations is then placed inside a telegram URL with your template ID in the content box. Once you open the link, all it takes is a simple click of the "send" box, and you're on your way!

How it is used: The Recruitment Automation Project is a simple, locally-hosted program. First, you will download the program in a .zip from GitHub (link in Info). Once you've opened that folder, simply open the file named "Recruitment Automation Project". A console will appear, and the user dialogue will begin. All you have to do is make sure you enter the correct information into the program. After you've entered the relevant information, simply hit the enter key to continue to the next step.

Other Features:
• Simple Puppet filter
• A small sound to notify you of when a new link has been generated
• Cross-platform operation
• Generates a link for up to 8 nations at a time
• Automatically inputs your telegram ID, eliminating several steps
• Error logging for support reasons
• Active development, friendly developer, and quick issue resolution




FAQ



Is the program safe to download?

Yes, of course. There is no malicious software included in the file. I gain nothing from destroying trust in my users.

Can I get the source code?

Yes, you can! Find the code here: Raw Code Repository. All code is protected by copyright.

Help, I've broken something! What do I do?

No worries! Code malfunctions all the time. Close the program and retry. If you still run into issues, head over to GitHub and make an Issues report. Make sure to include your log file in your issues report!

Why is there a verification? Can you hack my nation?

Verification is part of what helps protect the user, the user's region, and the developer. The code makes API calls to the NS site. When it does that, your nation is identified as the individual making the API call. If the program is misused, this will identify the misuser. In addition, the code must identify the region that your nation is from in order to function properly. However, your nation cannot be stolen by verification. Your verification code is useless to any third party and does not give access to your nation. It only identifies your nation as yours. In addition to that, your verification code expires after a certain time and can only be used to verify your nation once. To quote the NS API Documentation: "[verification] can be used by a third-party website to verify that a user owns a particular nation, without requiring that user to divulge sensitive information... The code will expire if the nation logs out, if it performs a significant in-game action such as moving regions or endorsing another nation, and after it is successfully verified. The code only allows nation verification by a third party website, and does not provide any extra access to or control over the nation."

Does this meet site requirements?

Yes. The program can only make up to 100 API calls a minute to the NS API, but will most likely end up making far less than that during a given period. The program also meets any API limitation requirements and does not fall under the Telegram API category. To be specific, the NS API requires that all automated telegrams be sent via the NS Telegram API shard. However, this program does not send telegrams, but only generates links for users to click and then send. It does not subvert any telegram or rate-limit requirements. Rest easy on that.

Where can I find more technical information?

All nerds and geeks may forward their questions to Lies Kryos#1734 on Discord or New Jaedonstan. Note that you are far more likely to receive a response quickly via Discord. I love to talk shop with people, especially those with plenty of coding experience! I have much to learn about coding and love to learn from experienced coders!

For basic information, the code is written in Python 3.9 using the PyCharm Community IDE. It makes use of many libraries, including BeautifulSoup4, Re, and logging.



Contact Us



Discord username: Lies Kryos#1734
Discord server: https://discord.gg/Uzc78eg
Telegram: Telegram Me
GitHub: Lies Kryos Profile
Last edited by New Jaedonstan on Tue Aug 03, 2021 11:56 am, edited 3 times in total.

Founder of NJ's Helpful Guides
Active roleplayer, founder, and delegate.
-NJ's Helpful Guides [Author]
-the Recruitment Automation Project [Developer]
-Thegye [Founder]
-Project Chaos [Founder and Administrator]

User avatar
Refuge Isle
Technical Moderator
 
Posts: 2441
Founded: Dec 14, 2018
Left-wing Utopia

Postby Refuge Isle » Thu Jul 15, 2021 7:01 pm

Seems eerily similar to one that I released but five short days ago.

Curious.

User avatar
The Hazar Amisnery
Chargé d'Affaires
 
Posts: 395
Founded: Oct 26, 2020
Ex-Nation

Postby The Hazar Amisnery » Thu Jul 15, 2021 7:08 pm

If everyone uses this instead of telegram stamps, where will Nationstates get their money from?
News:
Nationwide cyberattack devastates core government infrastructure, but we will prevail.

User avatar
New Jaedonstan
Secretary
 
Posts: 39
Founded: Feb 27, 2017
Corporate Bordello

Postby New Jaedonstan » Thu Jul 15, 2021 7:32 pm

Refuge Isle wrote:Seems eerily similar to one that I released but five short days ago.

Curious.

Can confirm that I had no idea that existed. This code does exist under my own copyright and is actually several months old, as you can see on GitHub. Unless you're suggesting someone stole it from me! dun dun dun. And I promise that you are not the only person with manual recruitment assistance technology. There's only a limited number of ways to partially automate manual recruitment; just because it's similar doesn't mean the developer stole it.
The Hazar Amisnery wrote:If everyone uses this instead of telegram stamps, where will Nationstates get their money from?

I guarantee that people will not stop using stamps. This is a convenient piece of code, but certainly not that convenient.
Last edited by New Jaedonstan on Thu Jul 15, 2021 7:39 pm, edited 1 time in total.

Founder of NJ's Helpful Guides
Active roleplayer, founder, and delegate.
-NJ's Helpful Guides [Author]
-the Recruitment Automation Project [Developer]
-Thegye [Founder]
-Project Chaos [Founder and Administrator]

User avatar
Flanderlion
Minister
 
Posts: 2244
Founded: Nov 25, 2013
Psychotic Dictatorship

Postby Flanderlion » Thu Jul 15, 2021 8:42 pm

Looks good, cool idea. Thanks for creating and sharing it. I was super confused by the dates on your master dispatch for a bit (you use a different date format in the US + it's 2021)
As always, I'm representing myself.
Information
Wishlist

User avatar
Levont
Political Columnist
 
Posts: 2
Founded: May 31, 2019
Left-wing Utopia

Postby Levont » Fri Jul 16, 2021 5:12 am

This is great! I've used this program a lot before this public release, and it's very helpful. Saved me the time and effort of going through the aggravating process of checking the activity feed for new nations and sending them telegrams which I honestly try to avoid and will continue to do so for the rest of time, and I will definitely use any program that supports my laziness. I'd definitely take up the chance to reduce the entire process of manual recruitment to two clicks(technically speaking, one click and one press on PC) + I love that I can just do practically anything else while waiting for a new set of nations to telegram.

I would definitely recommend it if you're looking to manually recruit or save money on stamps.

User avatar
Sandaoguo
Diplomat
 
Posts: 541
Founded: Apr 07, 2013
Ex-Nation

Postby Sandaoguo » Fri Jul 16, 2021 8:34 am

I would strongly discourage people from downloading this file, due to the opaqueness of it being closed-source and some unnecessary steps that only add to the question marks.

First, this is an unsigned executable, so Windows will prompt you to manually "trust" the file. Windows Defender might flag this as malicious software. I'll give the coder the benefit of the doubt and assume they've written this in Python and use PyInstaller to convert it into an executable, which has a well-documented history causing false positives for virus scanners. However, since this is closed source, we can't analyze the source code so we're at the mercy of just trusting the coder's word.

Second, nation verification is completely unnecessary here. I'm not sure why it's being used, but it adds to the overall sketchy vibes of the software. The only API call that's being made by this program is to the World API. So all that's needed to conform the API rules is a user-agent string identifying the program and the user. A simple nation name input is all that's needed. Verification is overkill.

Lastly, while I get that not everybody is as eager to share their code as I am (I've made every bit of NS-related code I've ever written open source!)... there's not much to this. It's as bare bones as you can get. It's a command-line tool, likely written in Python, and uses the NS public API to generate a simple URI to the telegrams page. It's been done before. You really should just make it open source, there's nothing to lose!

(Also, I'm confused at the claim that this is cross-platform? It's a Windows executable.)

P.s. Your code struggles to work with nations that have symbols in their name, like "Glen-Rhodes." It won't verify. Something the coding community could help debug, but this is closed source. :\
Last edited by Sandaoguo on Fri Jul 16, 2021 8:35 am, edited 1 time in total.

User avatar
New Jaedonstan
Secretary
 
Posts: 39
Founded: Feb 27, 2017
Corporate Bordello

Postby New Jaedonstan » Fri Jul 16, 2021 10:02 am

Sandaoguo wrote:I would strongly discourage people from downloading this file, due to the opaqueness of it being closed-source and some unnecessary steps that only add to the question marks.

First, this is an unsigned executable, so Windows will prompt you to manually "trust" the file. Windows Defender might flag this as malicious software. I'll give the coder the benefit of the doubt and assume they've written this in Python and use PyInstaller to convert it into an executable, which has a well-documented history causing false positives for virus scanners. However, since this is closed source, we can't analyze the source code so we're at the mercy of just trusting the coder's word.

Yes, I am expecting you to trust my word. I've worked on this in coordination with other coders and users prior to public release (as can be seen above) and they can vouch for the safety of the code being run. I have nothing to gain from attempting to cause damage to a user's computer; I have everything to lose. I expect a little trust from my users and that is all.
Sandaoguo wrote:Second, nation verification is completely unnecessary here. I'm not sure why it's being used, but it adds to the overall sketchy vibes of the software. The only API call that's being made by this program is to the World API. So all that's needed to conform the API rules is a user-agent string identifying the program and the user. A simple nation name input is all that's needed. Verification is overkill.

On the contrary. A simple nation name input is not all that is necessary. In order for the code to verify that you actually are the nation you say you are, verification is necessary. As explained in the FAQ, verification provides a protective measure for the user and the region. The user agent contains the phrase "Verified by API", which is helpful for any moderator who is looking at misuse of code (an unlikely event, but a prepared for one). In addition, the fact that the code also makes use of your region in order to satisfy the "canrecruit" shard call, verification is the step to ensure that your nation name is spelled correctly and that the region found by the API is the correct one. There are multiple API calls being made, more than just to the World API.

Besides all that, and most importantly, I cannot access your verification code anyway. There is no way for me to do this, as it is not even included in the logging file (which you can take a look at yourself). Not that it matters because, again, verification codes are completely useless after they've been used and cannot actually do anything. I don't understand why people think a verification code is some sort of secret password into your nation (maybe it's because some people keep pretending like verification does something harmful), but verification purely and simply confirms that you actually are the nation you say you are. Nothing more. I cannot access any private shard information (I would need your nation password for that), the code cannot impersonate you (because the verification code expires after a single use or any major change to your nation), nor can the code do anything to your nation.

It adds nothing to the "sketchy vibes" of a well-put-together piece of code presented nicely. It would be one thing if I was a brand-new nation posting "plz download my code, thx" instead of a well-respected, experienced player attempting to share their hard work with other users.
Sandaoguo wrote:Lastly, while I get that not everybody is as eager to share their code as I am (I've made every bit of NS-related code I've ever written open source!)... there's not much to this. It's as bare bones as you can get. It's a command-line tool, likely written in Python, and uses the NS public API to generate a simple URI to the telegrams page. It's been done before. You really should just make it open source, there's nothing to lose!

"Likely written in Python". See, now I'm convinced that you didn't actually read the whole post, because I specifically state that I make use of Python 3.9 and mention some of the libraries I made use of. "It's been done before"... so? I shouldn't take pride in the hard work I did? It is closed-source because 1) there is code in there that I don't necessarily want people to be messing with (ie, stuff like API ratelimits and verification) and 2) I worked hard on this, so I don't necessarily want just anyone taking it and making a copy and calling it their own. I made this 100% from scratch, without borrowing other people's code. Thank you for simplifying months of work down to "there's not much to this" and "as bare bones as you can get". I did attempt to make a nice GUI for users and still might, but the code itself continually crashed due to the complicated nature of the code itself.
Sandaoguo wrote:(Also, I'm confused at the claim that this is cross-platform? It's a Windows executable.)

P.s. Your code struggles to work with nations that have symbols in their name, like "Glen-Rhodes." It won't verify. Something the coding community could help debug, but this is closed source. :\

Pyinstaller freezes the code for all three major desktop OS: Linux, Windows, Mac OS. This is the first time I've publicly shared the work with people who may have cross-platform needs (I did code this on Windows and don't have other OS to test it on), so I've made an attempt. If people are having issues opening the program on non-Windows computers, please make sure to make an Issues report on GitHub under the already open compatibility issue page.

I've been using Regex code to sanitize URLs and hyphens happen to be a "non-alphanumeric symbol", apparently. Thank you for the bug report and I will get on it. [Edit] I've fixed the issue after a bit of research and the next update will include the fix.


If people have actual concerns about the safety of the code, I am willing to answer any specific questions that concerned users may have about the safety of their information. I am not above being transparent, but I also would like to protect the hard work I've done on this program.
Last edited by New Jaedonstan on Fri Jul 16, 2021 10:18 am, edited 1 time in total.

Founder of NJ's Helpful Guides
Active roleplayer, founder, and delegate.
-NJ's Helpful Guides [Author]
-the Recruitment Automation Project [Developer]
-Thegye [Founder]
-Project Chaos [Founder and Administrator]

User avatar
New Jaedonstan
Secretary
 
Posts: 39
Founded: Feb 27, 2017
Corporate Bordello

Postby New Jaedonstan » Tue Aug 03, 2021 11:55 am

For those worried about the project not being open source, fear no longer! In the top post, I have added a link to the repository with the raw code! Keep in mind that the code is protected under license, so please make sure you take a look at that before making use of the code, as always. Feel free to contact me if you have questions about the code!

Founder of NJ's Helpful Guides
Active roleplayer, founder, and delegate.
-NJ's Helpful Guides [Author]
-the Recruitment Automation Project [Developer]
-Thegye [Founder]
-Project Chaos [Founder and Administrator]

User avatar
Sad-States
Envoy
 
Posts: 207
Founded: Oct 04, 2013
Ex-Nation

Postby Sad-States » Tue Aug 03, 2021 12:11 pm

New Jaedonstan wrote:For those worried about the project not being open source, fear no longer! In the top post, I have added a link to the repository with the raw code! Keep in mind that the code is protected under license, so please make sure you take a look at that before making use of the code, as always. Feel free to contact me if you have questions about the code!

I am very happy to see the turn of events with the code now being open source and I would like to thank you for your quick responses and fixes to the program! It shows that you are very dedicated to this project!

Seems to be a pretty solid program that is simplistic in nature, which is a great solution to the recruitment problems in smaller regions. Keep up the great work New Jaedonstan!

Also I would like to echo that it shouldn't be an issue that the program asks the user for a verify-request. I mean even the NSWiki used to request one, and that was simply a wiki. It's much easier using tokens for both the developer and user. I am going to be doing the same for some of my projects that use the nationstates.net API, so it's better to get that out of the way and try to ensure that it is not seen as something controversial to do.
Last edited by Sad-States on Tue Aug 03, 2021 3:05 pm, edited 1 time in total.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- Former Magister to The East Pacific | Former Officer to the EPSA | Former Officer of HR to The Rejected Realms | -
- Former Evocatus to Legio Pacifica -
Proud Warden to the Order of The Grey Wardens
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


Advertisement

Remove ads

Return to Technical

Who is online

Users browsing this forum: Haymarket Riot, Thorn1000

Advertisement

Remove ads