Skip to content

README file is incomplete #12

@LuisAPI

Description

@LuisAPI

The current README.md file is incomplete and does not provide sufficient information about the project. A comprehensive README file is essential for users and contributors to understand the purpose, installation, usage, and other important details about the project.

Current README.md

# YouTubeWikiBot
Create a database of the most popular creators on the #1 video-sharing platform.

Required Updates

  1. Project Description: Provide a detailed description of the project.
  2. Features: List the main features of the project.
  3. Installation Instructions: Include steps to install the project.
  4. Dependencies: List the dependencies required for the project.
  5. Environment Variables: Document the necessary environment variables.
  6. Usage Instructions: Provide instructions on how to use the project.
  7. Testing: Include instructions on how to run tests.
  8. Project Structure: Outline the structure of the project.
  9. Contributing: Provide guidelines for contributing to the project.
  10. License: Include licensing information.

Proposed README.md

# YouTubeWikiBot

YouTubeWikiBot is a bot designed to create a database of the most popular creators on YouTube by fetching channel details and updating a MediaWiki site.

## Features

- Fetches YouTube channel details using the YouTube Data API.
- Updates a MediaWiki site with the fetched channel details.
- Automatically generates content for new and existing wiki pages.

## Installation

1. Clone the repository:
    ```sh
    git clone https://github.com/LuisAPI/YouTubeWikiBot.git
    cd YouTubeWikiBot
    ```

2. Create and activate a virtual environment (optional but recommended):
    ```sh
    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    ```

3. Install the required dependencies:
    ```sh
    pip install -r requirements.txt
    ```

## Dependencies

The project requires the following dependencies, which are listed in `requirements.txt`:

- `google-api-python-client`: For interacting with the YouTube Data API.
- `python-dotenv`: For loading environment variables from a `.env` file.
- `mwclient`: For interacting with MediaWiki sites.
- `pycountry`: For retrieving full country names from country codes.
- `pytest`: For running tests.
- `setuptools`: For packaging the project.

## Environment Variables

The project relies on several environment variables, which should be defined in a `.env` file in the root directory of the project. Here is an example `.env` file:

```env
API_KEY=your_youtube_api_key
AUTHOR_EMAIL=your_email@example.com
WIKI_URL=your_wiki_url
WIKI_PATH=/w/
BOT_USERNAME=your_bot_username
BOT_PASSWORD=your_bot_password
CHANNELS_PAGE_TITLE=User:YouTubeWikiBot/Filters/Channel Update Requests
TEST_WIKI_URL=your_test_wiki_url
TEST_WIKI_PATH=/w/
TEST_USERNAME=your_test_username
TEST_PASSWORD=your_test_password

Usage

  1. Ensure that the .env file is correctly configured with your API keys and credentials.
  2. Run the main script to fetch channel details and update the wiki:
    python src/main.py

Testing

To run the tests, use the following command:

pytest

Project Structure

YouTubeWikiBot/
├── .github/
│   └── workflows/
│       └── python-publish.yml
├── .gitignore
├── .env
├── LICENSE
├── README.md
├── requirements.txt
├── setup.py
├── src/
│   ├── __init__.py
│   ├── main.py
│   ├── utils.py
│   ├── wiki_bot.py
│   └── youtube_api.py
└── tests/
    ├── __init__.py
    └── test_wiki_bot.py

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

License

This project is licensed under the MIT License. See the LICENSE file for details.


### Steps to Reproduce

1. Open the current `README.md` file.
2. Observe the lack of detailed information.

### Expected Behavior

The `README.md` file should include comprehensive information about the project, including installation, usage, dependencies, environment variables, testing, project structure, contributing guidelines, and licensing information.

### Additional Context

A detailed README file will help users and contributors understand the project better and make it easier to use and contribute to.

---

Please update the `README.md` file accordingly.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions