msasikanth / twine Goto Github PK
View Code? Open in Web Editor NEWTwine: A multiplatform RSS reader built using Kotlin and Compose
License: Apache License 2.0
Twine: A multiplatform RSS reader built using Kotlin and Compose
License: Apache License 2.0
Describe the bug
Entering an incorrect URL surfaces errors that range from confusing to misleading.
Input URL | Error message | Suggested fix |
---|---|---|
msfjarvis.dev/feed.xml |
Unable to connect to localhost/127.0.0.1:443 | Default URL scheme to HTTPS if absent |
https://msfjarvis.dev/feed.xml |
App doesn't support this type of feed yet | Special case handling of HTTP 404 |
Device Information
Describe the bug
App closes itslef when you mark all read and click next feed sub.
To Reproduce
Steps to reproduce the behavior:
Device Information
Describe the bug
iOS version twine keep crash after updated to 1.32.0(152) version
To Reproduce
Steps to reproduce the behavior:
Screenshots
https://github.com/msasikanth/twine/assets/104444708/6f4c9fff-69d7-4d31-ac6e-5cd13c4cd5d7
Device Information
Stacktrace
Describe the bug
Despite Sorting by recent or deleting articles older than a week, older articles from certain websites stays on top
To Reproduce
Steps to reproduce the behavior:
Device Information
Can you support Android 11?
The problem of the automatically search for feed whn u enter an url:
Xatala.com (error, no feed found)
Xataka.com/feedburner.xml (detected)
It can't search for feedburner.xml automatically, you need to enter the full url to load the feed
this app looks beautiful,UI interaction is also very convenient!
Is your feature request related to a problem? Please describe.
Nope
escribe the solution you'd like
use browser or browser tab Spending too much time
Additional context
Nope
You should add an About section where to insert:
Have you thought about providing translation support?
I am looking for an rss app for our staff and would be happy to provide German and maybe polish translations
Describe the bug
Following the latest release of v1.29.0 (115) I find that with the (welcome) addition of a read status one of my feeds i.e. Google AI blog (RSS) always reports the time for all articles as 0 mins since posted. This does increase over time for however long I leave it but once I refresh the feed it resets to 0.
To Reproduce
Steps to reproduce the behavior:
Device Information
There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.
Location: config
Error type: Invalid allowedVersions
Message: The following allowedVersions does not parse as a valid version or range: "\\d+\\.\\d+\\.\\d+-compose-experimental"
Describe the bug
Mastodon creates auto-generated RSS feeds for users. These only have descriptions containing the post contents and no titles which results in an empty list of items being displayed.
To Reproduce
Steps to reproduce the behavior:
Describe the bug
The text and image of the code change when cliking in an item
To Reproduce
Steps to reproduce the behavior:
Screenshots
https://github.com/msasikanth/twine/assets/71900639/e18f3257-7a74-491d-949b-5e615e1a9a38
Device Information
Describe the bug
App crashes on latest Play Store release when trying to swipe up on the home page.
To Reproduce
Steps to reproduce the behavior:
Device Information
Stacktrace
05-25 11:16:36.609 15639 15639 E AndroidRuntime: java.lang.IllegalArgumentException: Padding must be non-negative
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at u.r0.<init>(Unknown Source:72)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at h7.l.S0(Unknown Source:7)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at h7.l.T0(Unknown Source:21)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at i5.r.a(Unknown Source:943)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at q.s.a(Unknown Source:26)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at q.s.a0(Unknown Source:17)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at i0.y.H(Unknown Source:283)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at q.u1.b(Unknown Source:356)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at q.u1.T(Unknown Source:32)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at a7.h.s0(Unknown Source:42)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at i0.y.o(Unknown Source:128)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at i0.y.G(Unknown Source:35)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at i0.d0.u(Unknown Source:17)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at i0.w1.n(Unknown Source:100)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at u.t.j0(Unknown Source:415)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at androidx.compose.ui.platform.o0.doFrame(Unknown Source:6)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at androidx.compose.ui.platform.m0.doFrame(Unknown Source:47)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1035)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:845)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:775)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:938)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:201)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at android.os.Looper.loop(Looper.java:288)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7870)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
05-25 11:16:36.609 15639 15639 E AndroidRuntime: Suppressed: s7.f: [i0.h1@fbfe505, androidx.compose.ui.platform.m1@35a395a, o1{Cancelling}@80078b, n0@951c068]
05-25 11:16:42.741 15785 15785 E AndroidRuntime: FATAL EXCEPTION: main
05-25 11:16:42.741 15785 15785 E AndroidRuntime: Process: dev.sasikanth.rss.reader, PID: 15785
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
io.coil-kt.coil3:coil-svg
, io.coil-kt.coil3:coil-network-ktor
, io.coil-kt.coil3:coil-compose
)app.cash.paging:paging-compose-common
, app.cash.paging:paging-common
)iosApp/Podfile
.github/workflows/android_prod_release.yml
tramlinehq/deploy-action v0.1.6
actions/setup-java v4
actions/upload-artifact v4
actions/upload-artifact v4
.github/workflows/ci_checks.yml
actions/checkout v4
actions/setup-java v4
actions/checkout v4
actions/setup-java v4
actions/checkout v4
actions/setup-java v4
actions/checkout v4
actions/setup-java v4
reactivecircus/android-emulator-runner v2
.github/workflows/ios_prod_release.yml
tramlinehq/deploy-action v0.1.6
actions/setup-java v4
actions/upload-artifact v4
macos 14
gradle.properties
settings.gradle.kts
build.gradle.kts
androidApp/build.gradle.kts
core/base/build.gradle.kts
core/model/build.gradle.kts
core/network/build.gradle.kts
gradle/libs.versions.toml
org.jetbrains.compose.runtime:runtime 1.6.10
org.jetbrains.compose.foundation:foundation 1.6.10
org.jetbrains.compose.ui:ui 1.6.10
org.jetbrains.compose.ui:ui-util 1.6.10
org.jetbrains.compose.material:material 1.6.10
org.jetbrains.compose.material3:material3 1.6.10
org.jetbrains.compose.material:material-icons-extended 1.6.10
org.jetbrains.compose.components:components-resources 1.6.10
io.ktor:ktor-client-core 2.3.11
io.ktor:ktor-client-okhttp 2.3.11
io.ktor:ktor-client-darwin 2.3.11
io.ktor:ktor-client-logging 2.3.11
org.jetbrains.kotlin:kotlin-test 2.0.0
org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-test 1.8.1
org.jetbrains.kotlinx:kotlinx-datetime 0.6.0
org.jetbrains.kotlinx:kotlinx-collections-immutable 0.3.7
org.jetbrains.kotlinx:atomicfu 0.24.0
org.jetbrains.kotlinx:kotlinx-serialization-json 1.6.3
app.cash.sqldelight:android-driver 2.0.2
app.cash.sqldelight:native-driver 2.0.2
app.cash.sqldelight:coroutines-extensions 2.0.2
app.cash.sqldelight:androidx-paging3-extensions 2.0.2
app.cash.sqldelight:sqlite-3-35-dialect 2.0.2
com.arkivanov.decompose:decompose 3.0.0
com.arkivanov.decompose:extensions-compose 3.0.0
com.arkivanov.essenty:lifecycle 2.0.0
com.arkivanov.essenty:lifecycle-coroutines 2.0.0
com.arkivanov.essenty:back-handler 2.0.0
androidx.activity:activity-compose 1.9.0
androidx.appcompat:appcompat 1.6.1
androidx.core:core-ktx 1.13.1
androidx.collection:collection 1.4.0
androidx.test:runner 1.5.2
androidx.test:rules 1.5.0
androidx.work:work-runtime-ktx 2.9.0
androidx.datastore:datastore-core-okio 1.1.1
androidx.datastore:datastore-preferences-core 1.1.1
androidx.browser:browser 1.8.0
androidx.annotation:annotation 1.8.0
io.coil-kt.coil3:coil-compose 3.0.0-alpha04
io.coil-kt.coil3:coil-network-ktor 3.0.0-alpha04
io.coil-kt.coil3:coil-svg 3.0.0-alpha04
me.tatarka.inject:kotlin-inject-compiler-ksp 0.6.3
me.tatarka.inject:kotlin-inject-runtime 0.6.3
dev.sasikanth:material-color-utilities 1.0.0-alpha01
com.fleeksoft.ksoup:ksoup 0.1.2
com.github.requery:sqlite-android 3.45.0
dev.chrisbanes.material3:material3-window-size-class-multiplatform 0.5.0
com.android.tools:desugar_jdk_libs 2.0.4
cafe.adriel.lyricist:lyricist 1.7.0
cafe.adriel.lyricist:lyricist-processor 1.7.0
com.squareup.okio:okio 3.9.0
app.cash.paging:paging-common 3.3.0-alpha02-0.5.1
app.cash.paging:paging-compose-common 3.3.0-alpha02-0.5.1
co.touchlab:stately-isolate 2.0.7
co.touchlab:stately-iso-collections 2.0.7
io.github.pdvrieze.xmlutil:core 0.86.3
io.github.pdvrieze.xmlutil:serialization 0.86.3
org.kobjects.ktxml:core 0.2.3
com.eygraber:uri-kmp 0.0.18
io.github.kevinnzou:compose-webview-multiplatform 1.9.8
com.benasher44:uuid 0.8.4
com.bugsnag:bugsnag-android 6.5.0
co.touchlab.crashkios:bugsnag 0.8.6
co.touchlab:kermit 2.0.3
co.touchlab:kermit-bugsnag 2.0.3
com.android.application 8.4.1
com.android.library 8.4.1
org.jetbrains.kotlin.multiplatform 2.0.0
org.jetbrains.kotlin.android 2.0.0
org.jetbrains.kotlin.native.cocoapods 2.0.0
org.jetbrains.kotlin.plugin.parcelize 2.0.0
org.jetbrains.kotlin.plugin.serialization 2.0.0
org.jetbrains.compose 1.6.10
org.jetbrains.kotlin.plugin.compose 2.0.0
app.cash.sqldelight 2.0.2
com.diffplug.spotless 6.25.0
com.google.devtools.ksp 2.0.0-1.0.21
com.bugsnag.android.gradle 8.1.0
resources/icons/build.gradle.kts
resources/strings/build.gradle.kts
shared/build.gradle.kts
gradle/wrapper/gradle-wrapper.properties
gradle 8.7
Describe the bug
I get "input = 1" error when I add mitter rss
To Reproduce
Steps to reproduce the behavior:
Device Information
Sometimes, RSS feeds have articles which I don't necessarily want to read but clutter up the feed, and marking all posts as read would not be ideal. It would be really helpful to add this feature (whether through a left/right swipe gesture and/or a button where the bookmark and share buttons are) to help organise my feed!
Upon launching the app for the first time after downloading it from the Play Store, I encountered a crash when swiping up on my Redmi Note 9S Global device running Android 12 (MIUI 14).
(After swiping up, the app crashes and closes abruptly)
I have not encountered any similar issues with other apps made with Compose.
Is your feature request related to a problem? Please describe.
My blog, along with others like Jim Nielsen's use JSON feeds instead of XML-based feeds. This is because they're a lot easier to create and manage than XML-based feeds.
Describe the solution you'd like
So far, only a handful of feed readers have added support for JSON feeds. It would be nice if Twine also added support for it. You can read the specification here.
Rather minor glitch, but figured I'd still point it out since I just ran into it :)
A support for Fever API would be amazing.
https://feeds.bbci.co.uk/persian/rss.xml
I tried to add this rss to Reader
But everytime i try to, it doesn't nothing
Same with my other RSSs
For those who have organized their feeds into folders by topic, the OPML file also has that information. It would be super handy to have Twine organize our feeds into those folders when we import!
Describe the bug
Instead of showing the actual release date of rss items it says '0 minutes ago'.
To Reproduce
Steps to reproduce the behavior:
Device Information
Stacktrace
Not present in my present lol
Is your feature request related to a problem? Please describe.
Right now feed open in browser. That is, it open one new app. It would be better if the feed could be read in app itself.
Describe the solution you'd like
Implement a feed reader.
Additional context
Nope
Would it be possible to add Material You theming support to the app?
I'm not involved in coding Android apps so I don't know how hard it could be, but it would be great to have the app integrate with the theme most of my apps and my launcher follow.
Thanks in advance for any update.
Right now i cant see the url of source added. Due to that if i accidentally delete something or it i wanted to share the source with others i end up searching on google anf spend time again.
-> Instead if there is anyway we could see RSS source url and quickly copy/share it with others vis share sheet. Thats saved a bit of time.
Need to setup popoverPresentationController
for UIActivityViewController
when sharing on iPad
Is your feature request related to a problem? Please describe.
When you want to switch to a new device or format your phone, you cannot easily export all of your RSS feed links into a file and then restore it to your new device.
Describe the solution you'd like
E.g. export the database of the app into a file and save it to /sdcard . Also, the ability to restore the database from a specific file stored in user's storage.
Additional context
Describe the bug
Twine crash when fetching website content
To Reproduce
The rss link used is : https://cglab.ca/~abeinges/blah/rss.xml
Steps to reproduce the behavior:
Is your feature request related to a problem? Please describe.
Thanks for this App.
But using dictionary in this app is inconvenient, since contextmenu(?) does not allows third party apps. so i have to leave app, to Google every time.
Describe the solution you'd like
Other apps like Feeder allows third party apps to context menu, so one can use popup based dictionaries.
Describe the bug
The description
tags of RSS feeds tend to contain URL-encoded versions of the post contents which Twine renders as-is without the necessary decoding step.
To Reproduce
Steps to reproduce the behavior:
Describe the bug
When scrolling through the feed, the scroll position will go back to the top when a new article is closed.
This might be related to #271 but I created another issue just in case the root cause differs.
Screenshots
Device Information
Do you plan to add a light/day mode for the app? Many people may find reading black text on a white background easier.
ios version: 16.4.1
device model: iPhone Xr
ImeAction.Done don't work. It add new line at TextField
Is your feature request related to a problem? Please describe.
Instead of opening the website I'd love to view the articles directly inside the app alternatively
Describe the solution you'd like
A new view would open (preferably not a Bottom sheet as there's already one) with the date, title, image, body, author and so on
Additional context
Not necessary imho
Its abit painful to not have some of my favourite RSS sources at first as app takes the orde in chronological form.
It would be really helpful if we can reorder the added sources and any newly added source goes to bottom of the list.
Hi!
When I add my feed (https://sebi.io/feed.xml) on the iOS version of the app (installed from the App Store), it crashes with no further information 😅
Please add OPML support to import/export all feeds at once
Describe the bug
When scrolling through the feed, the scroll position will go back to the top if the phone is rotated.
Screenshots
Device Information
Description
Hi,
Thanks for your work on this project, it's been a really pleasant experience using this app.
On to the issue, I just tried to add the following RSS feed (http://ln.hixie.ch/rss/html) via the app and it errors that the feed is not a valid RSS feed. I had a look for similar issues and found that you use a validator to check what should be supported, but according to this validator this feed is ok.
https://validator.w3.org/feed/check.cgi?url=https://ln.hixie.ch/rss/html
To Reproduce
Steps to reproduce the behavior:
http://ln.hixie.ch/rss/html
Device Information
Stacktrace
If present, add stacktrace to help debug the issue faster.
Describe the bug
I updated my app version to the latest release and as noted in z changelog this release has support to importing opml files. So I tried to import this opml file hacker-news-blogs. And found these too things to improve
Device Information
Do you have any plans in adding "sending notification" to phone through app?
Widgets feature for the home screen launcher on Android. For example, we can select an RSS feed, add it as a widget and read it from the home screen without opening the app.
Is your feature request related to a problem? Please describe.
Can you add Reader to F-Droid?
Describe the solution you'd like
This is the inclusion policy that must be met to be able to submit. More info about submitting can be found here.
Here is the issue tracker to request your package to be available on F-Droid. After submitting, they can assist on what is needed to be done (if anything) to get it on F-Droid.
Describe the bug
hello, thank you for making this useful app. In this issue, I am reporting the following bug report.
To Reproduce
Steps to reproduce the behavior:
Screenshots
If applicable, add screenshots to help explain your problem.
Device Information
Stacktrace
If present, add stacktrace to help debug the issue faster.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.