Git Product home page Git Product logo

nyaapantsu-android-app's Introduction

NyaaPantsu

Build Statusjs-standard-style

  • Standard compliant React Native App Utilizing Ignite

⬆️ How to Setup

Step 1: git clone this repo: git clone https://github.com/NyaaPantsu/NyaaPantsu.git

Step 2: cd to the cloned repo: cd NyaaPantsu

Step 3: Install the Application with npm install

▶️ How to Run App

  1. cd to the repo
  2. Run Build for either OS
  • for iOS
    • run react-native run-ios
  • for Android
    • Run Genymotion
    • run react-native run-android

🚫 Standard Compliant

js-standard-style This project adheres to Standard. Our CI enforces this, so we suggest you enable linting to keep your project compliant during development.

To Lint on Commit

This is implemented using ghooks. There is no additional setup needed.

Bypass Lint

If you have to bypass lint for a special commit that you will come back and clean (pushing something to a branch etc.) then you can bypass git hooks with adding --no-verify to your commit command.

Understanding Linting Errors

The linting rules are from JS Standard and React-Standard. Regular JS errors can be found with descriptions here, while React errors and descriptions can be found here.

🔐 Secrets

This project uses react-native-config to expose config variables to your javascript code in React Native. You can store API keys and other sensitive information in a .env file:

API_URL=https://myapi.com
GOOGLE_MAPS_API_KEY=abcdefgh

and access them from React Native like so:

import Secrets from 'react-native-config'

Secrets.API_URL  // 'https://myapi.com'
Secrets.GOOGLE_MAPS_API_KEY  // 'abcdefgh'

The .env file is ignored by git keeping those secrets out of your repo.

nyaapantsu-android-app's People

Contributors

akuma06 avatar ewhal avatar ltype avatar xdk78 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

Watchers

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

nyaapantsu-android-app's Issues

Better way display network image

07-15 09:43:59.919 30023-30023/cat.pantsu.nyaapantsu E/AndroidRuntime: FATAL EXCEPTION: main
Process: cat.pantsu.nyaapantsu, PID: 30023
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter bitmap
at cat.pantsu.nyaapantsu.helper.ImageGetterAsyncTask.onPostExecute(ImageGetter.kt:0)
at cat.pantsu.nyaapantsu.helper.ImageGetterAsyncTask.onPostExecute(ImageGetter.kt:22)
at android.os.AsyncTask.finish(AsyncTask.java:667)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:684)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Should we use Fresco for display network image?

Add user profile like on website

Profile with your torrents, notifications and profile settings.
We need to talk about this activity/fragment design and other shit 😄

Ability to select multiple languages

Now we can select only one language. We should move to the new design of nyaapantsu and provide the ability to select multiple languages.
I'm thinking of adding a system like "tags" instead of the actual select

v1.2 Release

  • Cleanup code / Fix minor code issues #23
  • Add - Next/Previous on Swipe gesture #19
  • Add - RecyclerView Adapter instead BaseAdapter #24
  • Fix - Streaming issues #29
  • Fix - Images won't load in description #30
  • Add - Ability to select multiple languages #31
  • Add magnet upload in the upload form #32
  • Add Make website link clickable #33
  • Add Possibility to interact with cardview by swipe left #34
  • Fix Better way display network image #37
  • Update api to 1.1.1 #46
  • Add user profile like on website #36
  • Make nyaa pantsu voice play #44
  • Improve translation #62
  • Android O support #63

@akuma06
@xdk78
@ltype

Spanish translation

I was working on the Spanish translation of NyaaPantsu App. My translation is at 82% now, it need to be re-checked and fix minor issues context-related.

I think I can have a full translate in few days.

Travis test returns an error, should it be fixed?

I'm not sure if you are using travis tests for local testing or just for the badge (both, I guess!) but the second one returns an error by trying to create an android emulator, should it be removed in purpose to fix the badge/travis tests?

I have a lot to learn about TDD, so sorry for the possibly absurd questions.

Build error

Trying to build the app inside dev branch running:

./gradlew clean build

I get this error.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

Any ideas?

It is possible to build NyaaPantsu App for API 19?

At this moment, my smartphone have Android 4.4, so it will be nice if I can build NyaaPantsu App for Android 4.4+ (API 19). I searched for any issue with Kotlin and API 19 and it seems everything it's OK, but I don't know if the app needs any library that only run on API 21+, or something like that.

Move to OAuth2 Authentification

For security reasons and to be able to provide more user-specific features to the app, the nyaa API 1.2 will introduce a new way to login. This will be done by a standard OAuth2 Autorization server and a Consent Server.
I'm doing the code for it. The oauth2 api will completely follow the oauth2 standard.

The api endpoints will be:

Now that I have implemented the oauth api part on nyaa, I would like which authorization flow should we use? @ltype @xdk78
For example we can either display a a web form from https://nyaa.pantsu.cat/oauth2/auth, let the website handle the login + the grant and then take the token at the end.
Or we can use our own login form and directly send the credentials to the token api url to get the token.

Moreover I would like some ideas on where should we put the API_KEY and API_SECRET (private key) in the code. Since we need to have them available here for travis to compile our releases.

Make nyaa pantsu voice play

  • Add a option menu for play voice maybe a good idea?
  • And touch image while loading. can not touch image view
  • Support sukebei mode. need #8 , move to next milestone.
  • Add posibility to hide this in Settings 😄

Add a switch button for sukebei

Implementing Sukebei to the app is not that hard, we only have to change the api base url to sukebei.pantsu.cat/api .
User account is shared between both website and the token is the same, so we don't have to touch on user object.

Need to be changed

  • Recently played list should depend on the website chosen (sukebei or nyaa) since the torrents id would conflict with each other.
  • API base url
    Everything else can be left untouched.

Further improvements possible

With the theming support of the app #8, we could when sukebei is selected apply a more pinkish, redish, blackish theme.

Update api to 1.0.1

Now search gives a json result like this : { "torrents": [...], "TotalQueryResults": 123, ...}
With all the torrents in the "torrents" array.
For more information, please refer to the api documentation: https://nyaa.pantsu.cat/apidoc/

Fix minor code issues

  • adapters to separate packages (resolved by #21)
  • better data transfer between activities, fragments.. more code to other classes moved to v1.3
  • fix after click on stream button and back to other fragment than torrent app crashing after few seconds

Very strange problem

Open first torrent, back to main screen(in app) , go to User Profile, after that back and go to the torrent that you opened before = crash

Next/Previous on Swipe gesture

When clicking on a torrent, it might be a good idea to have a swipe gesture to go the next/previous torrent in the previous torrent list.

If I do a search it should move between the torrents in the result list. If I didn't do a search it should move between the last torrents. If I clicked on a recent viewed torrent, it should move between the last viewed torrent list.

Make settings working

Settings "frontend" it's just finished, so we need to make working saving user login, etc to shared prefs

v1.1 Release

Here is the discussion on what should we add for v1.1.
For now we have:

  • Possibility to watch anime from the app #5 (Added by #6 )
  • Swipe to refresh #7 (Added by #16 )
  • Restructuration of code (Added by #6 , #14 )

Crash on open

I can't even get it to open, just crashes every time

Sent from my Google Nexus 6P using FastHub

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.