Coder Social home page Coder Social logo

skyd666 / anivu Goto Github PK

View Code? Open in Web Editor NEW
523.0 3.0 12.0 13.34 MB

All-in-one Android app for RSS, BitTorrent dl & play. MVI arch, Material You style. ⭐️ Star to support!

Home Page: https://t.me/SkyD666Chat

License: GNU General Public License v3.0

Kotlin 100.00%
anime material-design md3 mvi mvi-architecture player rss torrent compose jetpack-compose

anivu's Introduction

🥰 AniVu

GitHub Workflow Status GitHub release (latest by date) F-Droid Version GitHub all downloads Support platform GitHub license Telegram Discord

AniVu, an all-in-one tool for RSS subscription and updates, bit torrent downloads, and video playback.

AniVu utilizes the MVI architecture and fully adopts the Material You design style. All pages are developed using Jetpack Compose.

中文   |   正體中文   |   Help us translate

Get it on F-Droid

💡 Features

  1. Subscribe to RSS, Update RSS, Read RSS
  2. Automatically update RSS subscriptions
  3. Download enclosures (enclosure tags) of torrent or magnet links in RSS articles
  4. Seeding downloaded files
  5. Play media enclosures or downloaded videos
  6. Support variable playback speed, setup audio track, subtitle track, etc
  7. Double-finger gesture to rotate and zoom video, long press to speed up playback
  8. Swipe on the video to control volume, brightness, and playback position
  9. Searching existing RSS subscription content
  10. Play other videos on the phone
  11. Support custom MPV player
  12. Support import and export subscriptions via OPML
  13. Support dark mode
  14. ......

🤩 Screenshots

ic_rss_screen ic_media_screen ic_article_screen ic_read_screen ic_read_screen_enclosure ic_download_screen ic_setting_screen ic_appearance_screen ic_rss_config_screen ic_about_screen ic_player_activity

🌏 Translation

If you are interested, please help us translate, thank you.

🛠 Primary technology stack

  • MVI Architecture
  • Jetpack Compose
  • Kotlin Coroutines and Flow
  • Material You
  • ViewModel
  • Room
  • Paging 3
  • Hilt
  • MPV
  • WorkManager
  • DataStore
  • Splash Screen
  • Navigation
  • Coil

✨ Star History

Star History Chart

🎈 Other works

Work Description Link
Rays (Record All Your Stickers), A tool to record, search and manage stickers on your phone. 🥰 Are you still struggling with too many stickers on your phone and having trouble finding the ones you want? This tool will help you manage your stickers! 😋 https://github.com/SkyD666/Rays-Android
Raca (Record All Classic Articles), a tool to record and search abstract passages and mini-essays in the comments section locally. 🤗 Are you still having trouble remembering the content of your mini-essay and facing the embarrassing situation of forgetting the front, middle and back? Using this tool will help you record the mini-essays you come across and never worry about forgetting them again! 😋 https://github.com/SkyD666/Raca-Android
NightScreen, when you use your phone at night 🌙, Night Screen can help you reduce the brightness of the screen and reduce the damage to your eyes. https://github.com/SkyD666/NightScreen

📃 License

This software code is available under the following license

GNU General Public License v3.0

anivu's People

Contributors

lightsummer233 avatar linsui avatar nekoouo avatar skyd666 avatar

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  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

anivu's Issues

Use softer background colors

I'm Dyslexic
For some people with dyslexia, high contrast color schemes can make reading/viewing content more difficult and this is a very common disease . Currently I have noticed that the app uses really high contrasty backgrounds compared to other apps that I'm easily able to use like read you , I cant use the app in light mode because it feels so contrasty and in darkmode I still have problems because of a highcontrasty background , for comparison here is ReadYou background color comparison .
Screenshot_2024-06-05-11-24-06-57_6de1e84f9daf512b0c3cf0ac2d20418d Screenshot_2024-06-05-11-42-08-55_8ddb5377535fa5c96d651cdcfe3fe939
Screenshot_2024-06-05-11-42-35-22_6de1e84f9daf512b0c3cf0ac2d20418d Screenshot_2024-06-05-11-42-17-10_8ddb5377535fa5c96d651cdcfe3fe939

I think if this very little consideration is taking into account many dyslexic people like me will be able to use the app with more ease . Please make the background colors more softer .

Can the bullet chat be added?

現階段的感覺已經非常完善了,下載觀看一條龍,要是能有彈幕功能那追番體驗會上一層樓,想建議加入彈彈的彈幕源,使用弹弹play开放平台 加上 Bangumi Api 來實現彈幕功能,像是KNKPAnime的彈幕功能就做的挺好的和官方的DanDanPlayForAndroid,下面有幾個是其他項目使用的類似案例

https://github.com/open-ani/ani
https://github.com/Predidit/Kazumi
https://github.com/Predidit/oneAnime

想問問您的意見和想法

A refresh button in the article screen and disable scroll down to refresh

every time i scroll with the mouse wheel in the article screen in my Chromebook the refresh thing gets in the way , also i have problems refreshing all feed (not groups and single feeds since they have refresh option) , is it possible to disable scroll to refresh and have a refresh button instead?

Card style in article/torrent list

A card layout similar to this

Screenshot_2024-04-24-03-27-32-224_io.nichijou.flutter.mikan-edit.jpg

  • For the icon, we can have the website logo (similar to readyou)
    Screenshot_2024-04-26-22-10-18-336_org.cromite.cromite-edit~2.jpg

  • For those websites that don't have any logo, we can have the first character of the article name (not the symbols) the Chinese or English or whatever language first character
    Screenshot_2024-04-26-22-11-35-693_me.ash.reader-edit.jpg

  • (Some people may not like the idea of having the website logo in the article list so we can make it optional, so even if the website has any logo, the article list will show the first character instead of the logo by default)

  • For the name, we can have the feed name
    Screenshot_2024-04-26-22-20-19-230_com.skyd.anivu-edit.jpg

  • For the secondary text under the name
    Screenshot_2024-04-24-03-27-32-224_io.nichijou.flutter.mikan-edit~3.jpg

, we can have elapsed time. For example, "10 minutes ago," "1 hour ago," "1 day ago" (but not two types together like "1 hour and 45 minutes ago" or "1 day 10 hours ago")
Screenshot_2024-04-26-22-12-36-374_xyz.luft.tachiyomi.mi.debug-edit~2.jpg
Screenshot_2024-04-26-22-12-36-374_xyz.luft.tachiyomi.mi.debug-edit~3.jpg

  • For the article title, as usual, the article title as it is

  • For the tags, we can have it optional like show tags or show the description.

  • Text inside these (| |) symbols can be used as tags.
    Screenshot_2024-04-26-20-55-57-002_com.skyd.anivu-edit.jpg

Ability to import opml files for mass rss feeds

I have a good amount of torrent feeds in a normal rss feed app which if I want to import one by one it will be so much time consuming and tiring long process. if opml import support is added it will be so convenient.

Subtitle delay, audio delay and external audio track

First two options are self explanatory and for third some early relas anime provide dub audio seperately so a external audio option would be helpful for such files .

External audio
.

Sub delay and audio delay
.

Hide Default group when its empty

Hide the categories when the category has no rss feed in them , including the default catagory , i dont have single feed in that catagory

Have the filter row show only after the filter icon is clicked

Screenshot_2024-06-07-11-25-41-749_com.skyd.anivu-edit~2.jpg

In the devices that have less height and in all devices when they are in landscape mode , the space filter row doesn't look good , can we have the filter row only show if someone filters , otherwise it just takes unneeded space even though its not even being used .

Remember Expansion state

Add a option so that if a group was expanded last time it will stay expanded and if another one was not expanded it will state that way next time opening the app.

So one can stay expanded and another group can stay closed at the same time when opening the app.

1

2

Grouping Media , and all media in the media tab .

Like #13 If the download videos are grouped in the media based on which feed we download them from ,it will be really handy. Also a all media option to access all of downloaded media is also needed.

I have 6-7 currently airing anime as my rss feed separately so if the download media is organised based on the feed I have downloaded the media from it will be really organised and easy to access.

Mark as seen

It will be efficient If we could see which torrents we have already seen in the torrents page/article page

A dimmed colour to mark as read could be added Screenshot_2024-04-28-04-48-26-162_me.ash.reader-edit.jpg

Or a simple dot in front of the torrents which we haven't read could also be added
Screenshot_2024-04-28-04-56-18-032_com.prof18.feedflow-edit.jpg

Open in browser

Add an option so that we can open the download link/magnet link in phone browser through tapping or swiping.
1

Crash

VersionName: 1.1-beta12
SDK Version: 29
ABI: arm64-v8a

Crash Info:
java.lang.IndexOutOfBoundsException: Index: 60, Size: 60
at s.f.a(SourceFile:131)
at s.f.c(SourceFile:12)
at U0.b.c(SourceFile:361)
at s.m.c(SourceFile:55)
at androidx.compose.foundation.lazy.layout.X.(SourceFile:91)
at u.Z.d(SourceFile:348)
at P.v3.g(SourceFile:60)
at S.J.b(SourceFile:294)
at S.J.d(SourceFile:16)
at c0.z.b(SourceFile:470)
at c0.A.a(SourceFile:100)
at s.g.b(SourceFile:62)
at s.g.n(SourceFile:350)
at c0.p.e(SourceFile:62)
at P.v3.i(SourceFile:33)
at A0.A0.w(SourceFile:71)
at g6.a.m(SourceFile:9)
at x6.H.run(SourceFile:97)
at A0.f0.m0(SourceFile:24)
at A0.e0.run(SourceFile:3)
at android.os.Handler.handleCallback(Handler.java:900)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8393)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Suppressed: C6.g: [A0.h0@dcbd854, s0{Cancelling}@ace3fd, f0@9c258f2]

一些界面上的建议(MD3)

首先,还请调用Android系统动画,目前这个动画只是单纯的渐变实在不太好;
然后,作为一个md3 app,还请适配动态颜色。

另外,私认为 divider 用的太多了,订阅或者文章界面可以考虑试试 Card;然后更多界面图标很少,不太适合此类布局,可以试试 Navigation drawer,可能会好看点?

Swipe right to mark as read or mark as favorite

Currently we can configure swipe left option which is really great for quick operation, can we configurable have swipe right option too?
Swipe feels more comfortable and reliable for many people.Also marking read/favorite in quick successions will be easier if swipe gesture is added.

Redesign "edit feed" And "add feed" Layout

2024-06-01_01 02 20

1. Preview Section

  • Description: This section includes the icon, name, and description of the item. It serves as an initial preview.
  • Functionality:
    • On first opening with a long press, it shows as a preview.
    • Users can click on specific fields (icon, name, or description) to enter edit mode for that specific field.

2. Link Section

  • Description: This section handles link previews and editing.
  • Functionality:
    • Link Preview:
      • Only the first part of the link is shown, even if the link is long.
      • A link logo on the left side provides quick access to the link.
    • Interaction:
      • Clicking the link logo opens the link in the browser.
      • Clicking the link field opens an editor where the entire link can be viewed and edited.

3. Options Section

  • Description: This section contains all the options and operations related to the feed.
  • Functionality:
    • Delete Feed:
      • Has a special red icon for caution.
      • Clicking it prompts a warning dialog for confirmation.
    • Additional Features (future implementation):
      • Notifications: Enable/disable notifications.
      • Auto-Download: Enable/disable auto-download or set auto-download rules.

4. Group Section

  • Description: This section allows for convenient and fast group switching.
  • Functionality:
    • Group Display:
      • Groups are shown as pills for one-click switching.
    • Adding New Groups:
      • Clicking the plus icon reveals a text field to add a new group.

Remove feed not working.

Steps to reproduce:
1.Add a rss feed
2.long press the feed to show options
3.click remove

Result: Nothing happens
Expected behaviour:it should remove the feed

Option to directly download magnet /torrents

Please give an option to directly download magnet links or torrent files we have. For old torrent files, RSS isn't really an option, so we need to use the magnet link and download the file with some torrent client. Since AniVu already supports downloading torrents, it would be great to be able to download magnet links/torrent files.

An idea of how it may look like
Screenshot_2024-04-20-00-50-45-435_com skyd anivu
1713556545208
1713556544771
1713556691247

Choosing default left screen

Some apps support choosing default left screen. I would really love to have the default left screen show one of my feed and some people may like to show all feeds and someppl may like to have default blank screen. The setting is like configurable 1.All feed 2.Choose feed 3.none. That would be great

Subtitle Styling inside the player

Most users dont prefer / dont know how to use mpv commands , it will be handy if users can choose simple subtitle styling from inside the player through a gui rather than command line interface.

The recommended / Most used styling options are

  • Enabling subtitle styling

    1. This toggles the --sub-ass-override=yes/force (by default it should be yes rather than disabled since having yes will apply important filters such as vsfilter-blur-compat or aspect-compat it it also doesnt break subtitle styling when set to yes )
    2. when turned off it will be --sub-ass-override=yes and if someone wants to apply subtitle styling then --sub-ass-override=force
  • Subtitle color and size

    1. Sets --sub-color=
      there are 2 ways of setting color ,
      1st :
      using hex color code . ex -
      --sub-color='#C0808080' set sub to 50% gray with 75% alpha
      '#AARRGGBB' aa for opacity , rr for red gg for green and bb for blue all ranging from 00 to FF.
      2nd:
      where each color component is specified as number in the range 0.0 to 1.0. It's also possible to specify the transparency by using r/g/b/a, where the alpha value 0 means fully transparent, and 1.0 means opaque. Ex -
      --sub-color=1.0/0.0/0.0/0.75 set sub to opaque red with 75% alpha.

    2. Sets --sub-font-size=
      Default value is 55 , fractional values excepted.

  • Subtitle Border Color and size

    1. Sets --sub-border-color=
      Similar to --sub-color
    2. Sets --sub-border-size=
      Similar to --sub-font-size , default value=3, fractional values accepted.
  • Subtitle Shadow Color and offset

    1. Sets --sub-shadow-color=
      See --sub-color. Color used for sub text shadow.
    2. Sets --sub-shadow-offset=
      Similar to --sub-font-size , fractional values accepted,A value of 0 disables shadows.
  • Font Styling : -

    --sub-bold=<yes|no> ;--sub-italic=<yes|no>
    
  • Examples

    1. For changing color ARGB slider is recommended .
    2. Example
      Aniyomi
      In this example we cant change border size , shadow color , shadow offset from inside the player which is a downside so I hope u'll add those in AniVu

Blur

Give us blurred top and bottom. They look so cool

AniVu
1

Teligram
2

M3U Android
3

Ability to select where to download torrents

An option to select where to download the torrent file will help manage the videos and files when needed + i wanted to upload the videos to my cloud storage but i wasn't simply able to do that via the share option in anivu, if i can select the folder where to download i'll select my cloud synced folder .

Sticky publication date header

It will be great and a neat addition if sticky publication header is added. Many apps use sticky publication date header for list items . Example -Screenshot_2024-04-27-21-44-29-874_me.ash.reader~2.jpg

Screenshot_2024-04-27-21-42-46-189_me.ash.reader~2.jpg

Screenshot_2024-04-27-21-44-35-943_me.ash.reader~2.jpg

Revamp feed screen

Add padding , rounded corner etc .

Here is a concept based on current anivu
1714305184832.jpg

External subtitle

Im watching this chinese anime which doesn't have English subtitles embedded, please add external subs so that we can choose download subtitle files .

use dual page in tablet mode .

Most of the space in my tablet it wasted in all pages , if app app uses dual page in tablet it will be really great . When opening the app the right page may look empty so i suggest shoing all feeds updates there by default and chage to group ot list when clicked

example - feedflow
Screenshot_2024-04-16-15-08-32-57_ec2eb6fa460e4a1f71f8b51a239fd3fc

concept->
IMG_20240416_151132

Ability to reorder groups and feeds

Can we rearrange (reorder) the group by holding and moving the pills.
Also if we can reorder the feeds inside groups somehow that would be great.

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.