Jump to content

StartIndex ignored when Recursive is false


quickmic

Recommended Posts

quickmic

Possible bug (not confirmed yet):

Seems that "StartIndex" parameter will be skipped/ignored when "IncludeItemTypes" is not set or set to None.

"Limit" parameter was set to a higher value > 1000

 

Emby server, latest beta

 

Edited by quickmic
Link to comment
Share on other sites

quickmic

Init query:

2022-02-16 12:52:47.069 Debug Server: http/1.1 GET http://‌‍‍192.168.0.207‌/emby/Users/e1f4f9fe335c47ae8524d0d7de19e9ab/Items?ParentId=b21e885d665c9dcd0f1e4241bcb2c4fc&CollapseBoxSetItems=False&IsVirtualUnaired=False&EnableTotalRecordCount=False&LocationTypes=FileSystem%2CRemote%2COffline&IsMissing=False&Recursive=False&Limit=5000&Fields=SpecialEpisodeNumbers%2CPath%2CSortName%2CWriter%2CLocalTrailerCount%2CVideo3DFormat%2COfficialRating%2CPremiereDate%2CProductionYear%2CCommunityRating%2CCriticRating%2CShortOverview%2CTags%2CProviderIds%2CParentId%2CRemoteTrailers%2CMediaSources%2CPresentationUniqueKey%2COriginalTitle%2CAlternateMediaSources%2CPartCount%2CSpecialFeatureCount%2CChapters%2CRecursiveItemCount%2CChildCount&StartIndex=0. UserAgent: Emby for Kodi Next Gen/7.0.0
2022-02-16 12:52:47.071 Debug SqliteItemRepository: GetInternalId from b21e885d-665c-9dcd-0f1e-4241bcb2c4fc
2022-02-16 12:52:47.088 Debug Server: http/1.1 Response 200 to 192.168.0.50. Time: 19ms. http://‌‍‍192.168.0.207‌/emby/Users/e1f4f9fe335c47ae8524d0d7de19e9ab/Items?ParentId=b21e885d665c9dcd0f1e4241bcb2c4fc&CollapseBoxSetItems=False&IsVirtualUnaired=False&EnableTotalRecordCount=False&LocationTypes=FileSystem%2CRemote%2COffline&IsMissing=False&Recursive=False&Limit=5000&Fields=SpecialEpisodeNumbers%2CPath%2CSortName%2CWriter%2CLocalTrailerCount%2CVideo3DFormat%2COfficialRating%2CPremiereDate%2CProductionYear%2CCommunityRating%2CCriticRating%2CShortOverview%2CTags%2CProviderIds%2CParentId%2CRemoteTrailers%2CMediaSources%2CPresentationUniqueKey%2COriginalTitle%2CAlternateMediaSources%2CPartCount%2CSpecialFeatureCount%2CChapters%2CRecursiveItemCount%2CChildCount&StartIndex=0
Link to comment
Share on other sites

quickmic

Code with workaround:

    def get_Items(self, parent_id, MediaTypes, Basic, Recursive, Extra, Dynamic):
        Limit = get_Limit(MediaTypes)
        IncludeItemTypes, Fields = self.get_MediaData(MediaTypes, Basic, Dynamic)
        params = {
            'ParentId': parent_id,
            'IncludeItemTypes': IncludeItemTypes,
            'CollapseBoxSetItems': False,
            'IsVirtualUnaired': False,
            'EnableTotalRecordCount': False,
            'LocationTypes': "FileSystem,Remote,Offline",
            'IsMissing': False,
            'Recursive': Recursive,
            'Limit': Limit,
            'Fields': Fields
        }

        if Extra:
            params.update(Extra)

            if "Limit" in Extra:
                Limit = Extra["Limit"]

        index = 0

        while True:
            params['StartIndex'] = index
            IncomingData = self.EmbyServer.http.request({'params': params, 'type': "GET", 'handler': "Users/%s/Items" % self.EmbyServer.user_id}, False, False)

            if 'Items' not in IncomingData or utils.SyncPause or utils.SystemShutdown:
                break

            if not IncomingData['Items']:
                break

            for Item in IncomingData['Items']:
                yield Item

            IncomingData['Items'].clear()  # free memory

            if not IncludeItemTypes: # Emby server bug workaround
                break

            index += Limit

 

Link to comment
Share on other sites

quickmic

This code works for multiple other queries. I remove the workaround, this happens:

 

2022-02-16 12:58:40.031 Debug Server: http/1.1 GET http://‌‍‍192.168.0.207‌/emby/Users/e1f4f9fe335c47ae8524d0d7de19e9ab/Items?ParentId=b21e885d665c9dcd0f1e4241bcb2c4fc&CollapseBoxSetItems=False&IsVirtualUnaired=False&EnableTotalRecordCount=False&LocationTypes=FileSystem%2CRemote%2COffline&IsMissing=False&Recursive=False&Limit=5000&Fields=SpecialEpisodeNumbers%2CPath%2CSortName%2CWriter%2CLocalTrailerCount%2CVideo3DFormat%2COfficialRating%2CPremiereDate%2CProductionYear%2CCommunityRating%2CCriticRating%2CShortOverview%2CTags%2CProviderIds%2CParentId%2CRemoteTrailers%2CMediaSources%2CPresentationUniqueKey%2COriginalTitle%2CAlternateMediaSources%2CPartCount%2CSpecialFeatureCount%2CChapters%2CRecursiveItemCount%2CChildCount&StartIndex=0. UserAgent: Emby for Kodi Next Gen/7.0.0
2022-02-16 12:58:40.033 Debug SqliteItemRepository: GetInternalId from b21e885d-665c-9dcd-0f1e-4241bcb2c4fc
2022-02-16 12:58:40.050 Debug Server: http/1.1 Response 200 to 192.168.0.50. Time: 20ms. http://‌‍‍192.168.0.207‌/emby/Users/e1f4f9fe335c47ae8524d0d7de19e9ab/Items?ParentId=b21e885d665c9dcd0f1e4241bcb2c4fc&CollapseBoxSetItems=False&IsVirtualUnaired=False&EnableTotalRecordCount=False&LocationTypes=FileSystem%2CRemote%2COffline&IsMissing=False&Recursive=False&Limit=5000&Fields=SpecialEpisodeNumbers%2CPath%2CSortName%2CWriter%2CLocalTrailerCount%2CVideo3DFormat%2COfficialRating%2CPremiereDate%2CProductionYear%2CCommunityRating%2CCriticRating%2CShortOverview%2CTags%2CProviderIds%2CParentId%2CRemoteTrailers%2CMediaSources%2CPresentationUniqueKey%2COriginalTitle%2CAlternateMediaSources%2CPartCount%2CSpecialFeatureCount%2CChapters%2CRecursiveItemCount%2CChildCount&StartIndex=0
2022-02-16 12:58:40.103 Debug Server: http/1.1 GET http://‌‍‍192.168.0.207‌/emby/Users/e1f4f9fe335c47ae8524d0d7de19e9ab/Items?ParentId=b21e885d665c9dcd0f1e4241bcb2c4fc&CollapseBoxSetItems=False&IsVirtualUnaired=False&EnableTotalRecordCount=False&LocationTypes=FileSystem%2CRemote%2COffline&IsMissing=False&Recursive=False&Limit=5000&Fields=SpecialEpisodeNumbers%2CPath%2CSortName%2CWriter%2CLocalTrailerCount%2CVideo3DFormat%2COfficialRating%2CPremiereDate%2CProductionYear%2CCommunityRating%2CCriticRating%2CShortOverview%2CTags%2CProviderIds%2CParentId%2CRemoteTrailers%2CMediaSources%2CPresentationUniqueKey%2COriginalTitle%2CAlternateMediaSources%2CPartCount%2CSpecialFeatureCount%2CChapters%2CRecursiveItemCount%2CChildCount&StartIndex=5000. UserAgent: Emby for Kodi Next Gen/7.0.0
2022-02-16 12:58:40.105 Debug SqliteItemRepository: GetInternalId from b21e885d-665c-9dcd-0f1e-4241bcb2c4fc
2022-02-16 12:58:40.122 Debug Server: http/1.1 Response 200 to 192.168.0.50. Time: 19ms. http://‌‍‍192.168.0.207‌/emby/Users/e1f4f9fe335c47ae8524d0d7de19e9ab/Items?ParentId=b21e885d665c9dcd0f1e4241bcb2c4fc&CollapseBoxSetItems=False&IsVirtualUnaired=False&EnableTotalRecordCount=False&LocationTypes=FileSystem%2CRemote%2COffline&IsMissing=False&Recursive=False&Limit=5000&Fields=SpecialEpisodeNumbers%2CPath%2CSortName%2CWriter%2CLocalTrailerCount%2CVideo3DFormat%2COfficialRating%2CPremiereDate%2CProductionYear%2CCommunityRating%2CCriticRating%2CShortOverview%2CTags%2CProviderIds%2CParentId%2CRemoteTrailers%2CMediaSources%2CPresentationUniqueKey%2COriginalTitle%2CAlternateMediaSources%2CPartCount%2CSpecialFeatureCount%2CChapters%2CRecursiveItemCount%2CChildCount&StartIndex=5000

 

Link to comment
Share on other sites

quickmic

Each loop increments the StartIndex and the loop exits on no "items" in response. Without "IncludeItemTypes" it never escapes cause each iteration returns items.

Link to comment
Share on other sites

quickmic

Even this simplified query returns items, even if it shouldn't. There are only 14 items available (folder query).

http://192.168.0.207/emby/Users/e1f4f9fe335c47ae8524d0d7de19e9ab/Items?ParentId=b21e885d665c9dcd0f1e4241bcb2c4fc&StartIndex=5000&Limit=5000

 

{
   "Items":[
      {
         "Name":"A",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3850",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"B",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3851",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"C",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3852",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"F",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3853",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"G",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3854",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"H",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3855",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"I",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3856",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"J",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3857",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"M",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3858",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"P",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3859",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"R",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3860",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"S",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3861",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"T",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3862",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      },
      {
         "Name":"U",
         "ServerId":"2a38697ffc1b428b943aa1b6014e2263",
         "Id":"3863",
         "IsFolder":true,
         "Type":"Folder",
         "UserData":{
            "PlaybackPositionTicks":0,
            "PlayCount":0,
            "IsFavorite":false,
            "Played":false
         },
         "ImageTags":{
            
         },
         "BackdropImageTags":[
            
         ]
      }
   ],
   "TotalRecordCount":14
}

 

Edited by quickmic
Link to comment
Share on other sites

quickmic

More research done. The issue seems NOT the IncludeItemTypes. It's the Recursive:

Incorrect:

http://‌‍‍192.168.0.207‌/emby/Users/e1f4f9fe335c47ae8524d0d7de19e9ab/Items?ParentId=b21e885d665c9dcd0f1e4241bcb2c4fc&Limit=5000&StartIndex=5000

same result as above

Correct:

http://192.168.0.207/emby/Users/e1f4f9fe335c47ae8524d0d7de19e9ab/Items?ParentId=b21e885d665c9dcd0f1e4241bcb2c4fc&Recursive=True&StartIndex=5000&Limit=5000

Response:

{"Items":[],"TotalRecordCount":149}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...