Giter VIP home page Giter VIP logo

gpodder2go's Introduction

  • ๐Ÿ‘‹ Hi, Iโ€™m @oxtyped
  • ๐Ÿ‘€ Iโ€™m interested in building tools to bring down walled-gardens and to promote a free, open and decentralized internet (web 1.0 roots)
  • ๐ŸŒฑ Iโ€™m currently learning more about the fediverse
  • ๐Ÿ’ž๏ธ Iโ€™m looking to collaborate on anything in the infra/ops/privacy and decentralized space
  • โœ I mostly write in golang, and then ruby and python
  • ๐Ÿ“ซ You can find me on mastodon: [email protected]
  • ๐Ÿ“ซ I'm also on oxtyped.net
  • โŒ You can also reach me on XMPP [email protected]

gpodder2go's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gpodder2go's Issues

Compatibility with Garmin Podcasts

I want to use gpodder2go to sync with the Podcasts app for Garmin smartwatches: https://github.com/lucasasselli/garmin-podcasts

So far, I have been able to login, but I get the following error when I try to manage subscriptions (from the smartwatch):

2023/04/23 13:15:02 [a9fa47634dce/fzJfjUtl27-000080] "POST http://IPADDRESS/api/2/auth/USERNAME/login.json HTTP/1.1" from MYIP - 200 0B in 1.284052ms
2023/04/23 13:15:17 error adding RSS feed from URL: &url.Error{Op:"Get", URL:"https://digitec.podigee.io/feed/mp3", Err:context.deadlineExceededError{}}
2023/04/23 13:15:39 error adding RSS feed from URL: context.deadlineExceededError{}

And when I try to download episodes:

2023/04/23 13:20:30 [a9fa47634dce/fzJfjUtl27-000082] "POST http://IPADDRESS/api/2/auth/USERNAME/login.json HTTP/1.1" from MYIP - 200 0B in 838.948ยตs
2023/04/23 13:20:53 error adding RSS feed from URL: context.deadlineExceededError{}
2023/04/23 13:21:17 error adding RSS feed from URL: &url.Error{Op:"Get", URL:"https://podcastfuerdeutschland.podigee.io/feed/mp3", Err:context.deadlineExceededError{}}
2023/04/23 13:21:28 error adding RSS feed from URL: &url.Error{Op:"Get", URL:"https://gehtdanochwas.podigee.io/feed/mp3", Err:context.deadlineExceededError{}}
2023/04/23 13:21:28 [a9fa47634dce/fzJfjUtl27-000083] "GET http://IPADDRESS/subscriptions/USERNAME/DEVICENAME.json HTTP/1.1" from MYIP - 200 14301B in 57.586016429s

On the smartwatch, it shows Error -2 in both cases.

I am currently trying to understand if the problem lies on gpodder2go or garmin-podcasts.

Update libc and sqlite to compile on FreeBSD

Hi. The version of modernc.org/libc and modernc.org/sqlite you currently use don't compile on FreeBSD, but just updating to

        modernc.org/libc v1.24.1 // indirect
        modernc.org/sqlite v1.26.0

was enough to make it compile and produce a running binary. With the caveat that I haven't actually tested it beyond seeing if it starts at all.

Synchronization Api missing

Is synchronization api implemented?
I spinned up a docker image of gpodder2go (https://github.com/owenvoke/gpodder2go-docker), set up two devices under one account, now I would like to sync those two devices.

When I run http://192.168.2.40:8081/api/2/sync-devices/gp2goadmin.json -> I get 404 page not found

How are you supposed to sync two clients (Antennapod on Android installations) without sync api?

If I understand it correctly, you set up and list synchronizations using this: https://gpoddernet.readthedocs.io/en/latest/api/reference/sync.html

My understanding of devices under one account is coming from here: https://antennapod.org/documentation/general/synchronization

Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work

I tried to run binary on my arm64 (armbian) and then x86-64 (manjaro) machines. Unfortunately, every time I am getting error like:

./gpodder2go init
2023/09/27 23:41:09 Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub

Is there anything wrong with my systems or with binaries? Any idea? I am not into Go in any way :-(

Link to alternatives in readme

First, thanks for making this. I really look forward to #16 so I can start using this and syncing between devices.

In the meantime, would you consider adding an alternatives section to the readme?
It should probably include the Antennapod docs about sync tools (which yours isn't mentioned in yet but I'll ask them to once I get sync working with your service) and maybe micro-gpodder-server since that's probably one of the most similar projects around.

Cheers!

Login not working in AntennaPod

I run the server:

./gpodder2go init
VERIFIER_SECRET_KEY="test" ./gpodder2go serve --addr 10.100.0.1:3005 --no-auth

Create user:

./gpodder2go accounts --api-addr='10.100.0.1:3005' create soz --name="soz" --email="[email protected]" --password="test"

It reports 'User soz created!'

However, when trying to login from AntennaPod, this happens:

photo_2022-11-26_18-44-29

On the terminal it shows:
2022/11/26 18:43:19 [tamandua/dz6KGee0SZ-000001] "POST http://10.100.0.1:3005/api/2/auth/soz/login.json HTTP/1.1" from 10.100.0.7:49978 - 401 0B in 478.362ยตs

However, it does work on the gPodder desktop client.

Am I doing something wrong in AntennaPod? Thanks in advance.

First time synchronisation cannot find device ID

I am running gpodder2go from Docker with the AntennaPod client. I am experiencing an issue where whenever I try to synchronise, the server errors with the following:

gpodder2go-gpodder2go-1  | 2024/04/14 12:12:34 unable to find device id from device name: &errors.errorString{s:"sql: no rows in result set"}
gpodder2go-gpodder2go-1  | 2024/04/14 12:12:34 error retrieving subscription history: &errors.errorString{s:"sql: no rows in result set"}

I have created a user and have successfully authenticated with the AntennaPod client.

Dockerfile

I have been tried to run gpodder2go in a dockerized environment but I have not been fully successful yet. I was wondering if somebody already managed to do it.

This is the Dockerfile I wrote (not working)

# Use a base image
FROM golang:1.16-alpine

ENV VERIFIER_SECRET_KEY='test'
EXPOSE 3005

# Set working directory
WORKDIR /app

# Install dependencies
# Musl-dev is required to fix stdlib.h
RUN apk update && apk add --no-cache wget git gcc musl-dev make sqlite 
RUN apk add --no-cache curl \     
  && curl -L https://github.com/golang-migrate/migrate/releases/download/v4.15.2/migrate.linux-armv7.tar.gz | tar xzv \
  && mv migrate /usr/local/bin/migrate \     
  && apk del curl

# Pull source code
RUN git clone https://github.com/oxtyped/gpodder2go.git /app/gpodder2go

# Make
RUN cd /app/gpodder2go && make build

# Init
RUN cd gpodder2go && ./gpodder2go init

# Run
CMD ["sh", "-c", "echo $VERIFIER_SECRET_KEY && /app/gpodder2go/gpodder2go serve"]

# Create a new user
RUN cd /app/gpodder2go && ./gpodder2go accounts create username --email="[email protected]" --name="MyName" --password="mypasswd"

I build and run it with

docker build . -t gpodder2go:latest
docker run -dp 3005:3005 gpodder2go:latest

When I look at the the logs it seems like being starting fine.

2023/04/01 17:30:15 ๐Ÿ’ป Starting server at localhost:3005

However, when I try to sync with AntennaPod, it sais that the connection failed. Same thing with the gPodder Desktop client. Any hint?

Safest way to serve to gpodder desktop?

I'm deploying gpodder2go on a raspberry pi, and I was wondering the safest way to deploy without auth that doesn't make all my subscriptions _too_ public.

I tested it today and failed to coax gpodder desktop to using the password I gave it, but --no-auth works just fine (still can't believe that's a real bug.)

micro-gpodder deals with this with a password slug attached to the username, and I'm wondering if doing that manually is the best way to deploy with gpodder2go as well.

Something like:

SLUG=$(cat /dev/urandom | tr -cd '[:graph:]'  | head -c 10)
gpodder accounts create "username_$SLUG" -p 'unused'

Then just serving without auth and keeping the actual username username_gT]Ks(EPR7 or whatever in your password manager.

Thanks for making this cool project! golang is a dream to deploy.

Cannot build for armv7

When I try to build for armv7 in a Docker container, I receive the following error:

[7/8] RUN cd gpodder2go && ./gpodder2go init:
#10 0.770 panic: suint(-301924841) expects input >= 0
#10 0.771
#10 0.771 goroutine 24 [running]:
#10 0.772 github.com/golang-migrate/migrate/v4.suint(...)
#10 0.773 /go/pkg/mod/github.com/golang-migrate/migrate/[email protected]/util.go:46
#10 0.774 github.com/golang-migrate/migrate/v4.(*Migrate).readUp(0x25426c0, 0xffffffff, 0xffffffff, 0x2542880)
#10 0.776 /go/pkg/mod/github.com/golang-migrate/migrate/[email protected]/migrate.go:582 +0x7b8
#10 0.779 created by github.com/golang-migrate/migrate/v4.(*Migrate).Up
#10 0.779 /go/pkg/mod/github.com/golang-migrate/migrate/[email protected]/migrate.go:283 +0x10c

The problem seems to be some option of migrate already reported here, together with a possible solution: golang-migrate/migrate#213

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.