[mythtv-commits] Ticket #13084: ttvdb.py will cease to function - TTVDB will discontinue support for V1 XML API in 3 months time on October 1st, 2017

MythTV noreply at mythtv.org
Fri Aug 18 12:42:48 UTC 2017


#13084: ttvdb.py will cease to function - TTVDB will discontinue support for V1 XML
API in 3 months time on October 1st, 2017
-------------------------------------------------+-------------------------
 Reporter:  Frederick Henderson <frederickjh@…>  |          Owner:
                                                 |  markspieth
     Type:  Bug Report - General                 |         Status:
                                                 |  assigned
 Priority:  minor                                |      Milestone:  29.0
Component:  MythTV - Mythmetadatalookup          |        Version:
                                                 |  Unspecified
 Severity:  medium                               |     Resolution:
 Keywords:                                       |  Ticket locked:  0
-------------------------------------------------+-------------------------

Comment (by Gary Buhrmaster <gary.buhrmaster@…>):

 I finally had a little time (while a compile was running) to look over the
 pull request.

 First, let me thank Mark for the raising of the hand to do this work.
 While I personally do not use ttvdb, I know that it is used by many, and
 keeping it working is important to those people.

 Secondly, I am not a dev, and my opinions (AFAIK) carry no weight with
 anyone that actually matters, but I do have opinions, and so I will share
 them, but one should feel free to ignore them in preference to official
 responses.

 Now on to the review.  Note that this is based only looking at the pull
 request and the code.  I have not actually tested it.

 While there is no formal review process in the project, I have a couple of
 concerns about the current pull request.

 First, while I would rarely use quite the flowery language used by Linus
 on the LKML, I do agree with him that mixing new features with bug fixes
 should result in the entire patch being rejected with prejudice.  While
 changing the bindings to support python3 is goodness in the long run, that
 has nothing to do with fixing the ttvdb script which (as has been stated
 elsewhere?) runs with python2.  A python3 port of the bindings should be a
 separable (developer task?) ticket, with a separate pull request, likely
 targeted just to the master branch.  Separating the python3 patches will
 also reduce the required new dependencies to (I think) just
 python2-requests.  Again, simpler is better (especially for something that
 needs back-porting).  Also, depending on distro/packging, python3 modules
 can have packaging requirements (different library locations) that can be
 problematic and has additional dependencies for packagers.  Again, if not
 needed, not appropriate for backporting.  I will also note that one of the
 devs, I think Mr. Wagner (I think it was Mr. Wagner, but it has been long
 enough that my pointer may be pointing to previously freed and now
 overwritten memory) suggested he had issues with using the various python
 compatibility import libraries (six and/or future?), so it may be good to
 ask for an opinion on the use of those compatibility imports (I do not
 remember if the issue(s) were philosophical, or known incompatibility, or
 what (and whether any of those concerns are still operational)) in the
 separate developer task ticket for python3 binding update.

 Secondly, there is a (legacy, but now identified) issue with the use of an
 embedded apikey that cannot be (easily) modified.  There were known to be
 individuals using MythTV as a base for commercial profit (MAAS?).  The
 ttvdb TOS currently explicitly states that an apikey cannot be used
 (without approval, and I presume payment/licence) for anything involving
 commercial use.  Embedding a apikey is a default enabler of misuse, and
 ttvdb would be well within their rights to revoke that key if it is so
 identified.  And while it admittedly is true that that is also with the
 existing ttvdb TOS and the current apikey, it is unclear (to me at least)
 whether the TOS has changed over the years regarding commercial use, but
 it is clear now.  And it has been my interpretation that the project has
 been quite consistent that it will not knowingly assist in the misuse of
 others content (why patches that bypass other sites limitations are not
 accepted), and this means (again, in my interpretation) that the default
 should likely not be to embed an apikey that is restricted and not at all
 easily modified.  Whether the best solution is to require every user to
 have their own separate apikey, or install a key from a well known
 location (after agreeing that it will be used only for personal use), and
 then stored in the file system somewhere (like the raopkey?), or store
 some value in the settings table (value='ttvdb_apikey", data="whatever"?),
 is likely a good discussion (as signing up in order to get a personal
 apikey is free, that has the potential added benefit that it might
 encourage a few someones to be contributors, and not just takers, from the
 metadata source).

 Lastly, I like python requests.  It makes things a lot easier.  While
 there are some features where requests is required (certain socket level
 options), it is often possible to rework the code (with additional pain)
 to use the legacy urllib functionality.  However, as I am not doing to
 work, I am not going to recommend someone else make that effort either
 unless it is obviously trivial.

--
Ticket URL: <https://code.mythtv.org/trac/ticket/13084#comment:30>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list