The chivalrous messenger god is here to reduce your burden of Digital Publicity of your college events in facebook groups.
With every new event in college or any organisation, comes the burden of making it spread organically through facebook. A great way to do this is by posting it in multiple groups. It is a very tiresome and repetative task which can be excruciating at times.
- Allow posting in multiple groups by providing the list of groups and the required content.
- Accept list and content in multiple formats.
- Allow posting for two types of posts: embed and non embed.
- Allow posting a new post as well existing post.
- Create a installable pip package for the same.
- Secure and doesn't take password beyond user's system.
Below is a rough algorithm for the working of the application. This is to be improved as we move on with the project:
Step: Take required input from the user
Step: Login to facebook with given credentials using web driver
Step: Selecting the type of post to be shared
Step: Open each link and using the web driver enter the form with data
Step: Post and show success message
The input taken will be:
- Phone Number / Email (for login)
- Password (for login)
- List of links (via batch file or entering manually)
- existing post or new post
- Text for the post
- Image / Link for the post
The development environment requires a linux system with Python 3.7 and clone of the forked version of this repository.
We are using Pipenv for managing project development in a virtual environment and it is also the package manager here.
Below commands will setup the environment for the first time.
cd /project/directory
pipenv shell --three
pipenv install --dev
Please use pipenv shell
to activate the already created virtual environment for the project (created in last step).
Once in the virtual environment, use the command pipenv install PACKAGE_NAME1 PACKAGE_NAME2
to install new packages.
NOTE: Do not install packages without pipenv. We will not be supporting requirements.txt standard.
Download the web driver according to version/type of your browser. Make sure that EXE file downloaded is inside the the project folder. Use this command to install project dependencies.
In your development environment you can run the py file.
Follow this command in your development Environment in your project folder
$ sudo apt-get install python-pip
$ sudo pip install selenium
Download the web driver according to version/type of your browser. Make sure that EXE file downloaded is inside the the project folder where main.py file is present otherwise it would show an error of "webdriver not found".
Explore all the options and the tools required to accomplish the same. Get a knowledge of the DOM structure of Facebook.
Create a basic structure for the project and implement the extracting and selection of DOM objects required for the process. Acceptance of input and formatting it should also be completed.
Make it a pip package and finish up the coding phase. Write tests if time remains.
Please raise a feature request or issue before sending PR for the same.
Follow the below guidelines for proper coding practices:
- Always create a new branch for your changes and make PR from it ONLY.
- Write neat code with proper comments.
- Follow PEP8 coding style.
- Write descriptive commit messages. Please read this for more information.
- Write detailed PR messages and include
fixes #ISSUE_NUMBER
it if closes an issue, otherwise useconcerns #ISSUE_NUMBER
to tag the related issues. Please refer here for more PR guidelines. - It is recommended to have a single commit for a task.
- Use DRY principles to create maintainable code.
Badges All contributors / users are requested to join Gitter channel for further discussion on ideas, PRs and issues.
For issues please raise a ticket in the issues tab in the Naarad github repository.
Mentor for the project: thealphadollar