# Freedomain Social Media Poster

Social Media Poster created for the [Freedomain Philosophy Show](https://freedomain.com/)

![Alt text](Assets/Screenshots/Screenshot_Main_Results.png "Screenshot of Main and Results Windows")

## Features
Automated posting to the following social media platforms, utilizing either the platform's API, or automated input through Chrome utilizing Selenium Webdriver for platforms with no available APIs.
- Discord [API]
- Telegram [API]
- Subscribestar [Selenium]
- Minds [Selenium]
- Gab [Selenium]
- Locals [Selenium]
- Twetch [Selenium]
- MeWe [Selenium]
- Linkedin [Selenium]
- Thinkspot [Selenium]
- Flote [Selenium]
- Parler [Selenium]
- Steemit [Selenium]
- Bastyon [Selenium]
- Gettr [Selenium]


# Installation
1.  Install .Net Framework 3.5 
	- This can be installed directly through Windows by going to Start > Turn Windows Features On or Off > check the checkbox next to “.NET Framework 3.5” > Click OK
2. 	Install [SeleniumBasic](https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0) to control Chrome
	- Make sure to “Run as Administrator” on the file when installing so that it gets installed to `C:\Program Files\SeleniumBasic`. Otherwise it will get installed to `\AppData\` and the Poster will not be able to connect to Selenium and to Chrome.
3.	[Download latest ChromeDriver](https://chromedriver.chromium.org/downloads) for your Chrome version so Selenium can connect to Chrome for automation
	- Open Chrome and type in `about::version` into the URL bar. The very first line will tell you what Chrome version you have
	- After downloading, extract “chromedriver_win32.zip” and move the extracted chromedriver.exe to: `C:\Program Files\SeleniumBasic\chromedriver.exe`
	- NOTE: The chromedriver will need to be re-downloaded whenever Chrome updates to keep up with API changes
4.	[Download the latest .exe of the Poster](/yuriy/social-media-poster/releases)
	- When run, the poster will automatically create the folders and files it requires in the directory it's run from.

# Settings.ini
The Poster reads & saves its settings to a `settings.ini` file located in the same directory the the Poster. All customization, including custom profile URLs are stored here. The required fields are:

````
[SocialMediaPoster]
LocalsURL=Your Locals Community Page URL
SubscribeStarProfileURL=Your Subscribestar Profile URL
DiscordParlerWebhookURL=Public Posts Webhook URL
DiscordErrorLoggingWebhookBotURL=Webhook URL Where Error & Status Messages get posted to
TelegramBotToken=Public Posts Bot Token
TelegramBotChatID=Public Posts Bot Chat ID
````
- [How to create Discord webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks)
- [How to get Telegram bot token + chat-id](https://tutorial.cytron.io/2021/09/01/how-to-create-a-telegram-bot-get-the-api-key-and-chat-id/)
- All other settings will automatically get written to the `settings.ini` file as you check/uncheck the setting boxes while running the Poster.


# Uncaught Script Errors 
I’ve done my best to catch any possible errors that might pop up and write functionality to handle them. But If an error happens that i haven't written resolves for, it will pop up a message box that looks like this. Please send me a screenshot so I can write a patch for the bug. 

![Alt text](Assets/Screenshots/Error_Message2.png "Error Message")

# Compiling To .exe From Source
1. [Install Autohotkey v1](https://www.autohotkey.com/download/)
2. `git clone` the project and then either run the `Compile Uploader to EXE.ahk` autohotkey script to compile automatically, or start up the AHK compiler that comes installed with Autohotkey and select the `Freedomain Social Media Poster.ahk` and `\Assets\FreedomainSMP.ico` icon.
