Problem in saving fetched sound/images in Parley

Albert Astals Cid aacid at kde.org
Mon Mar 13 23:44:04 UTC 2017


El dilluns, 6 de març de 2017, a les 15:29:00 CET, Xin Huang va escriure:
> Hi All,
> 
> When I am using Parley, I find that the FetchSound plugin has some
> problems. I am using Ubuntu 16.10 and everything from the official package
> repository. (I noticed there are some update, but the problem seems still)
> 
> 
> 1. The mwclient package, used by wikitionary, requires to be upgraded since
> Wikipedia deprecated API via http request. (should be https)
> 
> After upgrading mwclient, an extra package request_oauthlib is also
> required. Because mwclient is distributed by source code, it might be
> required adding request_oauthlib source. (Or adding by using pip
> dependencies?)

Yes, i guess mwclient should be updated and request_oauthlib "added" if it's a 
dependency. Can you work on a patch for that?

Cheers,
  Albert

 
> 2. After mwclient is upgraded, there is a problem during saving sound file
> url/path in keduvockvtml2writer.
> 
> ( The code on GitHub can be found here: https://github.com/KDE/
> libkeduvocdocument/blob/ddb743b7e312e69d7f1eee9a3f4c25
> ef8031b27b/keduvocdocument/keduvockvtml2writer.cpp#L549 )
> 
> bool KEduVocKvtml2Writer::writeTranslation( QDomElement
> &translationElement, KEduVocTranslation* translation )
> {
>     // ...
>     // sound
>     if ( !translation->soundUrl().isEmpty() ) {
>         QString urlString;
>         qDebug() << "soundUrl" << translation->soundUrl();
>         if (
> KIO::upUrl(m_doc->url().adjusted(QUrl::RemoveFilename)).isParentOf(
> translation->soundUrl()) ) {
>             // try to save as relative url
>             urlString = m_doc->url().toString(QUrl::RemoveFilename) + '/' +
> translation->soundUrl().toString();     // <------------ HERE
>         } else {
>             urlString =  translation->soundUrl().url();
>         }
>         qDebug() << "urlString" << urlString;
>         translationElement.appendChild( newTextElement( KVTML_SOUND,
> urlString ) );
>     }
> 
> Notice the line marked: The soundUrl of a translation parley passed in is
> "file:///path/to/kvtml/kvtmlfilename_files/File:En-us-Word.ogg", and the
> m_doc->url() is "file:///path/to/kvtml/kvtmlfilename.kvtml". By the logic
> saving as relative url, the result will be "file:///path/to/kvtml/file://
> /path/to/kvtml/kvtmlfilename_files/Files:En-us-word.ogg".
> 
> To fix the saving to relative url, the code should be:
> 
>             QDir dir(m_doc->url().adjusted(QUrl::RemoveFilename).
> toLocalFile());
>             qDebug() << m_doc->url().toString(QUrl::RemoveFilename);
>             urlString = dir.relativeFilePath(translation->soundUrl().
> toLocalFile());
> 
> Similar code for saving image to relative path is also incorrect. (Lines
> above saving sound)
> 
> 
> I have submitted a patch (https://git.reviewboard.kde.org/r/129992/) for
> the second issue. For the first issue requires update mwclient package, I
> don't know what would be a proper solution.
> 
> Thanks,
> Xin Huang




More information about the kde-edu mailing list