Code Monkey home page Code Monkey logo

Comments (6)

srvrguy avatar srvrguy commented on August 27, 2024

I see one problem with having third-party apps try to mark updates. How do they know which entry to update? They would need to communicate one of the following:

  • Our internal Item ID and type
  • The MAL item ID and type
  • The exact name of the item and type

The first option won't really work without some already-established connection where the notifying application has matched the item. The second option is more realistic, but if the application is already aware of the MAL ID, it would have enough code to just do the update itself. I can only see the third option being really used, but name matching is tricky and for any non-match, we'd have to ask the user to select the correct item, negating the benefit of having an intent-based update from a third-party application.

Abstracting the code for internal use is good, but I just can't think of a clean method for third parties to use us for updates without a bunch of difficulty.

from atarashii.

dgw avatar dgw commented on August 27, 2024

I wouldn't call title mismatches a negation of benefit.

Having the user involved in the update process isn't the end of the world. Third-party apps implementing the intent API with Atarashii! could certainly pass through the title and type of the item they wish to update, with Atarashii! notifying the user if automatic updating fails. Whether Atarashii! or the third-party app stores the mapping between the failed text match and what the user ultimately selects, that information could be reused for future, fully automated updates.

Given that the third requirement in @AnimaSA's list was for there to be communication back to the calling application anyway, that response could include the mapping ultimately selected by the user, and the third-party app could then pass the mapped value instead on future calls to Atarashii!.

from atarashii.

AnimaSA avatar AnimaSA commented on August 27, 2024

What dgw brought was my initial thinking was this. The app could fire off the title and type in an intent, Atarashii would then handle it if we have a match, or fire up a dialog for the user to select the appropriate match. If the latter happens, we can store what the app called us with in a local mappings database and automate future requests with that specific term. Storing the mappings ourselves had the additional benefit of continuing to work if the user switches reading apps but sources the same site (name+type would be the same) and the integrating app wouldn't have to do any extra work.

Its tricky, and I'm not entirely sure how useful having an open intent API for 3rd parties will be (will developers actually make use of it?), but most of the heavy lifting will be done when overhauling our internal system, so adding a public one shouldn't be too much more work.

from atarashii.

AnimaSA avatar AnimaSA commented on August 27, 2024

Can't edit on mobile, so double posting.

Ideally, all a dev would have to do would be something like:

new Intent().putExtra("title", "asdf").putExtra("type", "manga")

And send it. Psuedocode, but that's the gist of it. Atarashii should handle the rest.

from atarashii.

Efreak avatar Efreak commented on August 27, 2024

An advantage of sending the mal item id to the app is that it would keep atarashii up to date. A second advantage would be not having to give my password to multiple apps. I trust Tachiyomi, but I don't necessarily trust other apps that might add this ability.

from atarashii.

ratan12 avatar ratan12 commented on August 27, 2024

We actually have noticed that there are some apps out there which are collecting passwords and usernames.

This enchantment will require some investigation about security issues and the best way to handle it for Devs

from atarashii.

Related Issues (20)

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.