Coder Social home page Coder Social logo

gremlin's People

Contributors

yfrancis 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gremlin's Issues

iOS 8 compatibility

Has anyone had any luck getting Gremlin to work with iOS 8? I couldn't get it to work myself using code that had work on iOS 7, and there are very few log messages:

Nov  5 07:40:01 iPhone gremlind[22]: MS:Notice: Injecting: co.cocoanuts.gremlind [gremlind] (847.27)
Nov  5 07:40:02 iPhone gremlind[22]: MS:Notice: Loading: /Library/MobileSubstrate/DynamicLibraries/GRDocumentImportRedirect.dylib
Nov  5 07:40:34 iPhone gremlind[22]: server went idle, terminating

The Gremlin helper app also doesn't list an errors in the history, though the list of plugins is complete, at least.

64 bit devices

I would like to know if the Gremlin library as available currently in Cydia (compiled for 32 bit processors) runs on 64 bit devices. I have heard from one or two people that it does indeed, but I'd like more confirmation. I myself only have an iPhone 4 and iPod 4 to test on.

Problem and Solution List

It would be a shame for all my trials to be repeated needlessly. Hence my documentation here.

Issue 1 - Why the heck won't gimport (/usr/bin/gimport) import my file? It always fails!
Solution 1 - You must supply the full path to gimport. (ie. /var/mobile/Documents/file.mp3)

Issue 2 - Gimport said it imported successfully, but I don't see my song in the music player.
Solution 2 - It may very well have succeeded after all! Song titles are not extracted from the filename but, rather, id3 tags embedded within the file. You can install and use ffmpeg for your tagging purposes from your iphone. Once the tags are fixed, the file should load properly.

Issue 3 - I fixed the tags on my file, and it LOOKS like it is right, but when I play the file, it shows "Unknown Artist" instead of the artist metadata tag value.
Solution 3 - Holy hannah! I have no idea what causes this one and I am not even sure gimport had anything to do with it, but just in case it did, I'll leave my solution. You will need to know a tiny bit of SQL, but I used sqlite database browser (sourceforge, free) to edit /var/mobile/Media/iTunes_Control/iTunes/MediaLibrary.sqlitedb. I am not 100% what thing I deleted that was correct (the only other things were the items in album and album_artist that corresponded to the problem album title. You may have to do that as well), but I believe it is one of the last things I removed from the item and item_artist tables. The two queries I used were:

select * from item where album_pid = "3048132399436039054";

select * from item_artist where item_artist_pid = "884934370101945114";

First, Always back up your files before editing them willy nilly.!!

The first of the two values (album_pid) I retrieved from the album table. First I looked for the name of the album that was causing me issue (all songs from that album showed the wrong artist when played), that brought me back the album_pid. The results of the first query will contain the item_artist_pid value you need for the second query. I have left both queries as select statements. Once you have the item_artist_pid and album_pid from the queries, convert them both to delete statements and execute them against the sqlitedb. I am not sure if you need to remove the old uploaded files, or reboot the phone, but I did both. I think you might just be able to kill/restart the music player and that could do it.

** By this point it has occurred to me that the bugs I am facing are as a result of my tomfoolery and not gimport, but nevertheless I press on, documenting as I go **

Issue 4 - I've added a whole bunch of songs of one artist from multiple albums, but when I tell siri to play all songs by "artist name", it only plays some from one of the albums and doesn't play the rest. Also if I tell siri explicitly to play "album name that isn't the one that plays when I ask for all songs by artist name" it recognizes that the album is there, but never plays any songs (manually playing the song/album works)
Solution 4 - Back to sqlite! I don't know if it is by design, or a result of the import method gimport uses, but it seems that unlike every other album artist in table item_artist, when files are imported via gimport the series name and series sort fields are populated (I am not sure if this has bearing on this issue, just a noted difference between all files imported via iTunes vs gimport). The real problem is that when adding music for the same artist but a different album, gimport creates more rows in item_artist with the same artist name! I don't know why it does that, I don't know if purchased songs do the same, but I know it does not work that way, as when the new row is created, it gets a new item_artist_pid and that is what is assigned to the new item (song) in the item table.

First you need to get the relevant album_artist_pid from the album table.

select * from album_artist where album_artist = "Artist Name Goes Here";

You need to delete all but one of the rows in item_artist (that correspond to the artist you are having issue with, I also made sure that series_name and sort_series_name fields are blank).

select * from item_artist where item_artist = "Artist Name Goes Here"; --this will return all the rows currently in there, choose one you want to keep and remove all the other ones

Re-run the above query after you delete all but one, and copy down the item_artist_pid. Now that you have the album_artist_pid and the item_artist_pid, you can run the query below to fix the issue.

update item set item_artist_pid = "Retrieved from last query" where album_artist_pid = "Retrieved from first query";

After overwriting the old MediaLibrary.sqlitedb (you did back it up before you started any of this right?!?!?) with the one you have just edited, all you need to do is kill the media player app or restart to have the changes take effect. Now siri will do what you asked her to.

Code status

Is the code on this repo up-to-date with the version you released on Cydia?

iOS7 compatibility

Is this compatible with iOS 7? Including the framework in my app causes it to immediately crash

Open Source

Hi,

Are you going to be updating the code anytime soon? Also, I have contacted you about licensing and gotten no response it makes it difficult to work with gremlin legitimately if you will not respond to license emails .

[Gremlin haveGremlin] returns false

When I call haveGremlin, importFileAtPath, etc. the method always returns false. The code:

[Gremlin registerNotifications:self];
[Gremlin importFileAtPath:path];

failed to import mp3

Issue: works great to import pictures, but do not work when importing mp3.
Details: [Gremlin importFileWithInfo] return true, but then app hangs, neither gremlinImportWasSuccessful nor gremlinImport:didFailWithError get called ever after.

Environment: using the latest trunk code, ios version is 5.1.1.

Any help appreciated, thanks!

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.