~ubuntu-branches/debian/sid/smplayer/sid

« back to all changes in this revision

Viewing changes to src/findsubtitles/osparser.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Maia Kozheva
  • Date: 2009-03-31 23:05:43 UTC
  • mfrom: (1.2.2 upstream)
  • mto: This revision was merged to the branch mainline in revision 14.
  • Revision ID: james.westby@ubuntu.com-20090331230543-0h2hfwpwlu9opbv2
Tags: 0.6.7-1
* New upstream release. (Closes: #523791)
  - Reworked subtitle font preferences. (Closes: #503295)
  - No longer installs qt_fr.qm. (Closes: #486314)
* debian/control:
  - Bumped Standards-Version to 3.8.1.
  - Changed maintainer name (still the same person and GPG key).
  - Changed section to video.
  - Build-depend on zlib1g-dev for findsubtitles.
  - Require Qt >= 4.3 per readme.
  - Added ${misc:Depends}.
  - Make smplayer-translations depend on smplayer and smplayer recommend
    smplayer-translations, not the other way round. (Closes: #489375)
* debian/copyright:
  - Significantly expanded per-file with new upstream authors.
* debian/rules:
  - Make make use correct uic in install.
  - Clean svn_revision.
  - Removed get-orig-source - not needed with uscan --repack.
* debian/patches/01_gl_translation.patch:
  - Added patch to fix lrelease error on smplayer_gl.ts.
* Added debian/README.source for simple-patchsys.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*  smplayer, GUI front-end for mplayer.
 
2
    Copyright (C) 2006-2009 Ricardo Villalba <rvm@escomposlinux.org>
 
3
 
 
4
    This program is free software; you can redistribute it and/or modify
 
5
    it under the terms of the GNU General Public License as published by
 
6
    the Free Software Foundation; either version 2 of the License, or
 
7
    (at your option) any later version.
 
8
 
 
9
    This program is distributed in the hope that it will be useful,
 
10
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
    GNU General Public License for more details.
 
13
 
 
14
    You should have received a copy of the GNU General Public License
 
15
    along with this program; if not, write to the Free Software
 
16
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
17
*/
 
18
 
 
19
#include "osparser.h"
 
20
#include <QDomDocument>
 
21
#include <QFile>
 
22
#include <QDataStream>
 
23
 
 
24
OSParser::OSParser() {
 
25
}
 
26
 
 
27
OSParser::~OSParser() {
 
28
}
 
29
 
 
30
bool OSParser::parseXml(QByteArray text) {
 
31
        qDebug("OSParser::parseXml: source: '%s'", text.constData());
 
32
 
 
33
        s_list.clear();
 
34
 
 
35
        bool ok = dom_document.setContent(text);
 
36
        qDebug("OSParser::parseXml: success: %d", ok);
 
37
 
 
38
        if (!ok) return false;
 
39
 
 
40
        QDomNode root = dom_document.documentElement();
 
41
        //qDebug("tagname: '%s'", root.toElement().tagName().toLatin1().constData());
 
42
        
 
43
        QString base_url = root.firstChildElement("base").text();
 
44
        //qDebug("base_url: '%s'", base_url.toLatin1().constData());
 
45
 
 
46
        QDomNode child = root.firstChildElement("results");
 
47
        if (!child.isNull()) {
 
48
                //qDebug("items: %s", child.toElement().attribute("items").toLatin1().constData());
 
49
                QDomNode subtitle = child.firstChildElement("subtitle");
 
50
                while (!subtitle.isNull()) {
 
51
                        //qDebug("tagname: '%s'", subtitle.tagName().toLatin1().constData());
 
52
                        qDebug("OSParser::parseXml: text: '%s'", subtitle.toElement().text().toLatin1().constData());
 
53
 
 
54
                        OSSubtitle sub;
 
55
 
 
56
                        sub.releasename = subtitle.firstChildElement("releasename").text();
 
57
                        sub.link = base_url + subtitle.firstChildElement("download").text();
 
58
                        sub.detail = subtitle.firstChildElement("detail").text();
 
59
                        sub.date = subtitle.firstChildElement("subadddate").text();
 
60
                        sub.rating = subtitle.firstChildElement("subrating").text();
 
61
                        sub.comments = subtitle.firstChildElement("subcomments").text();
 
62
                        sub.movie = subtitle.firstChildElement("movie").text();
 
63
                        sub.files = subtitle.firstChildElement("files").text();
 
64
                        sub.format = subtitle.firstChildElement("format").text();
 
65
                        sub.language = subtitle.firstChildElement("language").text();
 
66
                        sub.iso639 = subtitle.firstChildElement("iso639").text();
 
67
                        sub.user = subtitle.firstChildElement("user").text();
 
68
 
 
69
                        s_list.append(sub);
 
70
 
 
71
                        subtitle = subtitle.nextSiblingElement("subtitle");
 
72
                }
 
73
        }
 
74
 
 
75
        return true;
 
76
}
 
77
 
 
78
// From the patch by Kamil Dziobek turbos11(at)gmail.com
 
79
// (c) Kamil Dziobek turbos11(at)gmail.com | BSD or GPL or public domain
 
80
QString OSParser::calculateHash(QString filename) {
 
81
        QFile file(filename);
 
82
 
 
83
        if (!file.exists()) {
 
84
                qWarning("OSParser:calculateHash: error hashing file. File doesn't exist.");
 
85
                return QString();
 
86
        }
 
87
 
 
88
        file.open(QIODevice::ReadOnly);
 
89
        QDataStream in(&file);
 
90
        in.setByteOrder(QDataStream::LittleEndian);
 
91
        quint64 size=file.size ();
 
92
        quint64 hash=size; 
 
93
        quint64 a;
 
94
        for(int i = 0; i < 8192; i++) {
 
95
                in >> a ; hash += a;
 
96
        };
 
97
        file.seek(size-65536);
 
98
        for(int i = 0; i < 8192; i++) {
 
99
                in >> a ; hash += a;
 
100
        };
 
101
 
 
102
        QString hexhash("");
 
103
        hexhash.setNum(hash,16);
 
104
 
 
105
        return hexhash;
 
106
}
 
107