neiam
/feedpug
feedpub
public · Issues · Pulls · Labels · Forks · Compare · Actions success · Badges · Packages
Log in to mark this repository.
Initial commit: FeedPug collaborative RSS reader
7ad1745 · gmorell · 2026-06-23 16:31
Message
{commit_body(@commit)}
Files changed
added
.dockerignore
+46
−0
| 1 | +# This file excludes paths from the Docker build context. | |
| 2 | +# | |
| 3 | +# By default, Docker's build context includes all files (and folders) in the | |
| 4 | +# current directory. Even if a file isn't copied into the container it is still sent to | |
| 5 | +# the Docker daemon. | |
| 6 | +# | |
| 7 | +# There are multiple reasons to exclude files from the build context: | |
| 8 | +# | |
| 9 | +# 1. Prevent nested folders from being copied into the container (ex: exclude | |
| 10 | +# /assets/node_modules when copying /assets) | |
| 11 | +# 2. Reduce the size of the build context and improve build time (ex. /build, /deps, /doc) | |
| 12 | +# 3. Avoid sending files containing sensitive information | |
| 13 | +# | |
| 14 | +# More information on using .dockerignore is available here: | |
| 15 | +# https://docs.docker.com/engine/reference/builder/#dockerignore-file | |
| 16 | + | |
| 17 | +.dockerignore | |
| 18 | + | |
| 19 | +# Ignore git, but keep git HEAD and refs to access current commit hash if needed: | |
| 20 | +# | |
| 21 | +# $ cat .git/HEAD | awk '{print ".git/"$2}' | xargs cat | |
| 22 | +# d0b8727759e1e0e7aa3d41707d12376e373d5ecc | |
| 23 | +.git | |
| 24 | +!.git/HEAD | |
| 25 | +!.git/refs | |
| 26 | + | |
| 27 | +# Common development/test artifacts | |
| 28 | +/cover/ | |
| 29 | +/doc/ | |
| 30 | +/test/ | |
| 31 | +/tmp/ | |
| 32 | +.elixir_ls | |
| 33 | + | |
| 34 | +# Mix artifacts | |
| 35 | +/_build/ | |
| 36 | +/deps/ | |
| 37 | +*.ez | |
| 38 | + | |
| 39 | +# Generated on crash by the VM | |
| 40 | +erl_crash.dump | |
| 41 | + | |
| 42 | +# Static artifacts - These should be fetched and built inside the Docker image | |
| 43 | +# https://phoenix.hexdocs.pm/Mix.Tasks.Phx.Gen.Release.html#module-docker | |
| 44 | +/assets/node_modules/ | |
| 45 | +/priv/static/assets/ | |
| 46 | +/priv/static/cache_manifest.json |
added
.formatter.exs
+6
−0
| 1 | +[ | |
| 2 | + import_deps: [:ecto, :ecto_sql, :phoenix], | |
| 3 | + subdirectories: ["priv/*/migrations"], | |
| 4 | + plugins: [Phoenix.LiveView.HTMLFormatter], | |
| 5 | + inputs: ["*.{heex,ex,exs}", "{config,lib,test}/**/*.{heex,ex,exs}", "priv/*/seeds.exs"] | |
| 6 | +] |
added
.gitignore
+37
−0
Click to load diff…
added
.gitlab-ci.yml
+42
−0
Click to load diff…
added
AGENTS.md
+510
−0
Click to load diff…
added
Dockerfile
+101
−0
Click to load diff…
added
README.md
+18
−0
Click to load diff…
added
android/.gitignore
+11
−0
Click to load diff…
added
android/README.md
+69
−0
Click to load diff…
added
android/app/build.gradle.kts
+67
−0
Click to load diff…
added
android/app/proguard-rules.pro
+7
−0
Click to load diff…
added
android/app/src/main/AndroidManifest.xml
+38
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/MainActivity.kt
+108
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/data/FeedPugClient.kt
+82
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/data/Models.kt
+86
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/data/PairUri.kt
+24
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/data/ThemeStore.kt
+36
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/data/TokenStore.kt
+47
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/ui/DetailScreen.kt
+147
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/ui/PairScreen.kt
+126
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/ui/TimelineScreen.kt
+298
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/ui/theme/AppTheme.kt
+136
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/ui/theme/Theme.kt
+21
−0
Click to load diff…
added
android/app/src/main/java/org/neiam/feedpug/app/ui/theme/Typography.kt
+38
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
added
android/app/src/main/res/mipmap-anydpi-v26/ic_icon.xml
+5
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
added
android/app/src/main/res/values/strings.xml
+3
−0
Click to load diff…
added
android/app/src/main/res/values/themes.xml
+5
−0
Click to load diff…
added
android/app/src/main/res/xml/data_extraction_rules.xml
+9
−0
Click to load diff…
added
android/build.gradle.kts
+7
−0
Click to load diff…
added
android/gradle.properties
+4
−0
Click to load diff…
added
android/gradle/libs.versions.toml
+46
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
added
android/gradle/wrapper/gradle-wrapper.properties
+7
−0
Click to load diff…
added
android/gradlew
+252
−0
Click to load diff…
added
android/gradlew.bat
+94
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
added
android/settings.gradle.kts
+25
−0
Click to load diff…
added
assets/css/app.css
+394
−0
Click to load diff…
added
assets/js/app.js
+83
−0
Click to load diff…
added
assets/tsconfig.json
+32
−0
Click to load diff…
added
assets/vendor/daisyui-theme.js
+124
−0
Click to load diff…
added
assets/vendor/daisyui.js
+1031
−0
Click to load diff…
added
assets/vendor/heroicons.js
+43
−0
Click to load diff…
added
assets/vendor/topbar.js
+138
−0
Click to load diff…
added
config/config.exs
+96
−0
Click to load diff…
added
config/dev.exs
+93
−0
Click to load diff…
added
config/prod.exs
+32
−0
Click to load diff…
added
config/runtime.exs
+259
−0
Click to load diff…
added
config/test.exs
+48
−0
Click to load diff…
added
lib/feed_pug.ex
+9
−0
Click to load diff…
added
lib/feed_pug/accounts.ex
+386
−0
Click to load diff…
added
lib/feed_pug/accounts/api_token.ex
+28
−0
Click to load diff…
added
lib/feed_pug/accounts/scope.ex
+33
−0
Click to load diff…
added
lib/feed_pug/accounts/user.ex
+132
−0
Click to load diff…
added
lib/feed_pug/accounts/user_notifier.ex
+90
−0
Click to load diff…
added
lib/feed_pug/accounts/user_token.ex
+156
−0
Click to load diff…
added
lib/feed_pug/application.ex
+48
−0
Click to load diff…
added
lib/feed_pug/feeds.ex
+307
−0
Click to load diff…
added
lib/feed_pug/feeds/feed.ex
+53
−0
Click to load diff…
added
lib/feed_pug/feeds/fetcher.ex
+253
−0
Click to load diff…
added
lib/feed_pug/feeds/item.ex
+34
−0
Click to load diff…
added
lib/feed_pug/feeds/item_read.ex
+14
−0
Click to load diff…
added
lib/feed_pug/groups.ex
+595
−0
Click to load diff…
added
lib/feed_pug/groups/follow_exclusion.ex
+24
−0
Click to load diff…
added
lib/feed_pug/groups/group.ex
+54
−0
Click to load diff…
added
lib/feed_pug/groups/group_feed.ex
+27
−0
Click to load diff…
added
lib/feed_pug/groups/group_follow.ex
+27
−0
Click to load diff…
added
lib/feed_pug/groups/not_owner_error.ex
+4
−0
Click to load diff…
added
lib/feed_pug/mailer.ex
+3
−0
Click to load diff…
added
lib/feed_pug/opml.ex
+86
−0
Click to load diff…
added
lib/feed_pug/reactions.ex
+174
−0
Click to load diff…
added
lib/feed_pug/reactions/item_reaction.ex
+22
−0
Click to load diff…
added
lib/feed_pug/reactions/reaction.ex
+25
−0
Click to load diff…
added
lib/feed_pug/release.ex
+41
−0
Click to load diff…
added
lib/feed_pug/repo.ex
+5
−0
Click to load diff…
added
lib/feed_pug/themes.ex
+28
−0
Click to load diff…
added
lib/feed_pug/timelines.ex
+48
−0
Click to load diff…
added
lib/feed_pug/timelines/slice.ex
+30
−0
Click to load diff…
added
lib/feed_pug/workers/refresh_feed.ex
+26
−0
Click to load diff…
added
lib/feed_pug/workers/schedule_feeds.ex
+19
−0
Click to load diff…
added
lib/feed_pug_web.ex
+116
−0
Click to load diff…
added
lib/feed_pug_web/components/core_components.ex
+498
−0
Click to load diff…
added
lib/feed_pug_web/components/layouts.ex
+206
−0
Click to load diff…
added
lib/feed_pug_web/components/layouts/root.html.heex
+42
−0
Click to load diff…
added
lib/feed_pug_web/controllers/api/follow_controller.ex
+52
−0
Click to load diff…
added
lib/feed_pug_web/controllers/api/group_controller.ex
+76
−0
Click to load diff…
added
lib/feed_pug_web/controllers/api/item_controller.ex
+37
−0
Click to load diff…
added
lib/feed_pug_web/controllers/api/profile_controller.ex
+8
−0
Click to load diff…
added
lib/feed_pug_web/controllers/api/shape.ex
+76
−0
Click to load diff…
added
lib/feed_pug_web/controllers/api/source_controller.ex
+25
−0
Click to load diff…
added
lib/feed_pug_web/controllers/api/timeline_controller.ex
+100
−0
Click to load diff…
added
lib/feed_pug_web/controllers/error_html.ex
+24
−0
Click to load diff…
added
lib/feed_pug_web/controllers/error_json.ex
+21
−0
Click to load diff…
added
lib/feed_pug_web/controllers/user_session_controller.ex
+67
−0
Click to load diff…
added
lib/feed_pug_web/endpoint.ex
+55
−0
Click to load diff…
added
lib/feed_pug_web/feed_helpers.ex
+101
−0
Click to load diff…
added
lib/feed_pug_web/gettext.ex
+25
−0
Click to load diff…
added
lib/feed_pug_web/live/devices_live.ex
+188
−0
Click to load diff…
added
lib/feed_pug_web/live/discover_live.ex
+226
−0
Click to load diff…
added
lib/feed_pug_web/live/groups_live.ex
+270
−0
Click to load diff…
added
lib/feed_pug_web/live/newsfeed_live.ex
+625
−0
Click to load diff…
added
lib/feed_pug_web/live/user_live/confirmation.ex
+94
−0
Click to load diff…
added
lib/feed_pug_web/live/user_live/login.ex
+134
−0
Click to load diff…
added
lib/feed_pug_web/live/user_live/registration.ex
+89
−0
Click to load diff…
added
lib/feed_pug_web/live/user_live/settings.ex
+160
−0
Click to load diff…
added
lib/feed_pug_web/plugs/api_auth.ex
+42
−0
Click to load diff…
added
lib/feed_pug_web/router.ex
+107
−0
Click to load diff…
added
lib/feed_pug_web/telemetry.ex
+93
−0
Click to load diff…
added
lib/feed_pug_web/user_auth.ex
+287
−0
Click to load diff…
added
mix.exs
+100
−0
Click to load diff…
added
mix.lock
+54
−0
Click to load diff…
added
priv/gettext/en/LC_MESSAGES/errors.po
+112
−0
Click to load diff…
added
priv/gettext/errors.pot
+109
−0
Click to load diff…
added
priv/repo/migrations/.formatter.exs
+4
−0
Click to load diff…
added
priv/repo/migrations/20260618173401_create_users_auth_tables.exs
+30
−0
Click to load diff…
added
priv/repo/migrations/20260618173502_add_oban_jobs.exs
+7
−0
Click to load diff…
added
priv/repo/migrations/20260618173602_create_feeds.exs
+24
−0
Click to load diff…
added
priv/repo/migrations/20260618173603_create_items.exs
+22
−0
Click to load diff…
added
priv/repo/migrations/20260618173604_create_groups.exs
+38
−0
Click to load diff…
added
priv/repo/migrations/20260618173605_create_group_feeds.exs
+17
−0
Click to load diff…
added
priv/repo/migrations/20260618173606_create_group_follows.exs
+15
−0
Click to load diff…
added
priv/repo/migrations/20260618173607_create_follow_exclusions.exs
+14
−0
Click to load diff…
added
priv/repo/migrations/20260618180932_create_item_reads.exs
+15
−0
Click to load diff…
added
priv/repo/migrations/20260618183326_create_reactions.exs
+31
−0
Click to load diff…
added
priv/repo/migrations/20260618183517_add_item_dates.exs
+26
−0
Click to load diff…
added
priv/repo/migrations/20260618192854_create_timeline_slices.exs
+20
−0
Click to load diff…
added
priv/repo/migrations/20260618194026_create_api_tokens.exs
+18
−0
Click to load diff…
added
priv/repo/migrations/20260618225601_add_item_search_vector.exs
+26
−0
Click to load diff…
added
priv/repo/seeds.exs
+11
−0
Click to load diff…
modified
?
+0
−0
Click to load diff…
added
priv/static/images/logo.svg
+6
−0
Click to load diff…
added
priv/static/robots.txt
+5
−0
Click to load diff…
added
rel/env.sh.eex
+35
−0
Click to load diff…
added
rel/overlays/bin/migrate
+5
−0
Click to load diff…
added
rel/overlays/bin/migrate.bat
+1
−0
Click to load diff…
added
rel/overlays/bin/server
+5
−0
Click to load diff…
added
rel/overlays/bin/server.bat
+2
−0
Click to load diff…
added
test/feed_pug/accounts_test.exs
+397
−0
Click to load diff…
added
test/feed_pug/api_tokens_test.exs
+40
−0
Click to load diff…
added
test/feed_pug/feeds/fetcher_test.exs
+61
−0
Click to load diff…
added
test/feed_pug/feeds_test.exs
+200
−0
Click to load diff…
added
test/feed_pug/groups_test.exs
+263
−0
Click to load diff…
added
test/feed_pug/opml_test.exs
+54
−0
Click to load diff…
added
test/feed_pug/reactions_test.exs
+104
−0
Click to load diff…
added
test/feed_pug/timelines_test.exs
+41
−0
Click to load diff…
added
test/feed_pug_web/controllers/api/api_controller_test.exs
+158
−0
Click to load diff…
added
test/feed_pug_web/controllers/error_html_test.exs
+14
−0
Click to load diff…
added
test/feed_pug_web/controllers/error_json_test.exs
+12
−0
Click to load diff…
added
test/feed_pug_web/controllers/user_session_controller_test.exs
+147
−0
Click to load diff…
added
test/feed_pug_web/live/devices_live_test.exs
+39
−0
Click to load diff…
added
test/feed_pug_web/live/discover_live_test.exs
+71
−0
Click to load diff…
added
test/feed_pug_web/live/groups_live_test.exs
+71
−0
Click to load diff…
added
test/feed_pug_web/live/newsfeed_live_test.exs
+223
−0
Click to load diff…
added
test/feed_pug_web/live/user_live/confirmation_test.exs
+118
−0
Click to load diff…
added
test/feed_pug_web/live/user_live/login_test.exs
+109
−0
Click to load diff…
added
test/feed_pug_web/live/user_live/registration_test.exs
+82
−0
Click to load diff…
added
test/feed_pug_web/live/user_live/settings_test.exs
+212
−0
Click to load diff…
added
test/feed_pug_web/user_auth_test.exs
+390
−0
Click to load diff…
added
test/support/conn_case.ex
+79
−0
Click to load diff…
added
test/support/data_case.ex
+58
−0
Click to load diff…
added
test/support/fixtures/accounts_fixtures.ex
+89
−0
Click to load diff…
added
test/test_helper.exs
+2
−0
Click to load diff…
Parents: