diff --git a/podfetch/README.md b/podfetch/README.md index 42def2a..139249a 100644 --- a/podfetch/README.md +++ b/podfetch/README.md @@ -8,179 +8,4 @@

-
-Table of Contents -
    -
  1. PIP
  2. -
  3. Folder Structure
  4. -
  5. Script
  6. -
  7. Run
  8. -
  9. Testing
  10. -
  11. Automation
  12. -
-
- -## 01. PIP - -You will need pip installed on your linux mint system. **PIP** is the package manager for Python. - -* See if PIP is already installed. Open a terminal and type: - `pip -V` - -* If not, install it. - `python get-pip.py` - -* Once installed, install watchdog - `pip install watchdog` - -> **Note:** You may need to use `pip3` - -## 02. Folder Structure - -Create a new folder called **scripts** in your home folder. This is where all your scripts will go. You can do this is two ways. - -1. In your file manager go to `~/scripts` then right click on an open space and select `Open in terminal` -2. In your terminal type: `cd ~/scripts` - -When done it should look like this: `/home/[username]/scripts` - -## 03. Script - -
- podcast_folder_monitor.py - -```python -#!/usr/bin/python3 - -import os -import time -import shutil - -from watchdog.observers import Observer -from watchdog.events import FileSystemEventHandler - -# Replace this with the folder path you want to monitor -folder_to_monitor = "/some/folder/to/monitor" - -class MyHandler(FileSystemEventHandler): - def on_created(self, event): - if event.is_directory: - folder_path = event.src_path - self.rename_mp3_files(folder_path) - - def rename_mp3_files(self, folder_path): - folder_name = os.path.basename(folder_path) - for filename in os.listdir(folder_path): - if filename.lower().endswith(".mp3"): - mp3_path = os.path.join(folder_path, filename) - new_mp3_path = os.path.join(folder_path, folder_name + ".mp3") - os.rename(mp3_path, new_mp3_path) - print(f"Renamed {filename} to {folder_name}.mp3") - -if __name__ == "__main__": - event_handler = MyHandler() - observer = Observer() - observer.schedule(event_handler, folder_to_monitor, recursive=True) - observer.start() - - try: - while True: - time.sleep(1) - except KeyboardInterrupt: - observer.stop() - - observer.join() -``` - -
- -Make sure to replace `/some/folder/to/monitor` with the actual path of the folder you want to monitor. - -> **Note:** leave the quotation marks - -Save this script as `podcast_folder_monitor.py` in the scripts folder. Next we need to change the permissions of this file so that the system can read it. - -* Right click on `podcast_folder_monitor.py` then `Properties`. -* Click on `Permissions` tab at top. -* Make sure Owner & Group reflect your `username` with `Read and Write` access to all. -* Check the `Execute` box to allow executing the file as a program. -* Close out the window. - -## 04. Run - -Now we need to test and run the script. - -Make sure you terminal is open to the location of the `podcast_folder_monitor.py` file. Should be `~/scripts` - -Normally to run a Python script will would use -`python3 podcast_folder_monitor.py` - -> **Note:** Will still work. - -But because we have [shebang](https://linuxhandbook.com/shebang/) set in the script we can just use -`./podcast_folder_monitor.py` - -You should now see the blinking curser in the terminal indicating that the script is running and monitoring the folder for a new file. - -![testing](img/running_podcast.png) - -## 05. Testing - -To test the script copy and paste one of your podcast folder that includes the podcast.mp3 file back into the folder. The script should notice the change and rename the **.mp3** to the name of the parent folder. - -![testing](img/testing_podcast.png) - -If everything worked out okay we can move to the next step. - -## 06. Automation - -We can make the script auto run in the background. Just like Sonarr, Radarr, etc... - -To get started we need to crate a new file in the systemd location. - -* Go to `/etc/systemd/system` -* Right click in a empty space and select `Open as Root`. Root access is needed to create or edit in this directory. -* Create a new file called `podfetch.service` -* Use this code inside the `podfetch.service` file. - -
- podfetch.service - -```ini -[Unit] -Description=Podcast Folder Monitor Service -Wants=network-online.target -After=network-online.target - -# Change [username] with your own. -[Service] -ExecStart=/usr/bin/python3 /home/[username]/scripts/podcast_folder_monitor.py -WorkingDirectory=/home/[username]/scripts -Restart=always -User=[username] - -[Install] -WantedBy=multi-user.target -``` - -
- -> **Note:** Make sure you change `[username]` with your own.. - -Now we need to enable the service file. - -```bash -# Reload the systemctl daemon -sudo systemctl daemon-reload - -# Enable the podfetch service -sudo systemctl enable podfetch.service - -# Starting the podfetch service -sudo systemctl start podfetch - -# Checking status -sudo systemctl status podfetch -``` - -### Congratulation your service is auto-running and listing for new podcast folders +For install instructions see the wiki. \ No newline at end of file diff --git a/podfetch/podfetch.service b/podfetch/podfetch.service index 645c671..8f1bc97 100644 --- a/podfetch/podfetch.service +++ b/podfetch/podfetch.service @@ -5,10 +5,10 @@ After=network-online.target # Change [username] with your own. [Service] -ExecStart=/usr/bin/python3 /home/[username]/scripts/podcast_folder_monitor.py -WorkingDirectory=/home/[username]/scripts +ExecStart=/usr/bin/python3 /home/[username]/scripts/podfetch/podcast_folder_monitor.py +WorkingDirectory=/home/[username]/scripts/podfetch Restart=always User=[username] [Install] -WantedBy=multi-user.target \ No newline at end of file +WantedBy=multi-user.target