---

- name: Install apt packages
  ansible.builtin.apt:
    name:
      - ffmpeg
      - npm
    state: present


- name: Download Croc installer
  ansible.builtin.get_url:
    url: https://getcroc.schollz.com
    dest: /tmp/croc.sh
    mode: "0755"

- name: Install Croc
  ansible.builtin.command: /tmp/croc.sh
  args:
    creates: /usr/local/bin/croc


- name: Install pip packages
  vars:
    pipx_packages:
      - yt-dlp
  community.general.pipx:
    name: "{{ item }}"
    state: latest
  with_items: "{{ pipx_packages }}"


# Do we need this?
# - name: Ensure pipx is in PATH
#   ansible.builtin.shell: pipx ensurepath

- name: Clone voddo repository
  ansible.builtin.git:
    repo: https://github.com/insanity54/voddo
    dest: /root/voddo
    version: bdc25562876b2e98c3f54962525809398b16d040

- name: Download and install thumbnail-generator.sh
  ansible.builtin.get_url:
    url: https://gitea.futureporn.net/futureporn/fp/raw/branch/main/packages/scripts/thumbnail-generator.sh
    dest: ~/.local/bin/thumbnail-generator.sh
    mode: '0755'

- name: Download and install Backblaze B2 CLI
  ansible.builtin.get_url:
    url: https://github.com/Backblaze/B2_Command_Line_Tool/releases/download/v4.3.1/b2-linux
    dest: ~/.local/bin/b2
    mode: '0755'

- name: Download and extract IPFS Kubo
  ansible.builtin.unarchive:
    src: https://dist.ipfs.tech/kubo/v0.33.2/kubo_v0.33.2_linux-amd64.tar.gz
    dest: ~/
    remote_src: true

- name: Install IPFS Kubo
  ansible.builtin.command: ~/kubo/install.sh
  args:
    creates: /usr/local/bin/ipfs

- name: Allow UFW ports
  community.general.ufw:
    rule: allow
    port: "{{ item }}"
    proto: tcp
  loop:
    - 8081 # npx http-server -p 8081 
    - 8080 # ipfs api
    - 4001 # ipfs swarm