Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
z52c authored Jul 6, 2018
1 parent 39bb7f3 commit 1b3baf1
Show file tree
Hide file tree
Showing 12 changed files with 110 additions and 13 deletions.
4 changes: 0 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
原来的QQMUsicDownloader,代码重写了,顺便改名叫MusicDownloader,应该会比之前的更加健壮了

无损已经凉了,这两天趁着端午看看能不能搞吧


## 功能 ##

1. 下载QQ音乐**单曲**
Expand Down
5 changes: 5 additions & 0 deletions config.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,16 @@ struct neteaseInfo{
#define UA " Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5221.400 QQBrowser/10.0.1125.400"
#define REFERERURL "y.qq.com"


#define DOWNLOADLINKHEAD "http://dl.stream.qqmusic.qq.com/"
#define DOWNLOADLINKMID "?fromtag=64&vkey="
#define DOWNLOADLINKGUID "&guid="
#define DOWNLOADLINKTAIL "&fromtag=1"

#define NDOWNLOADLINKHEAD "http://streamoc.music.tc.qq.com/"
#define NDOWNLOADLINKMID "?vkey="
#define NDOWNLOADLINKTAIL "&guid=1234567890&uin=1008611&fromtag=8"

//歌曲html页面链接 HEAD+SONGMID+TAIL
#define SONGLINKHEAD "https://y.qq.com/n/yqq/song/"
#define SONGLINKTAIL ".html"
Expand Down
1 change: 1 addition & 0 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ QString mp3FileName;
QString mp3Dir;
QString vkey;
QString guid;
QString vkey2;

int main(int argc, char *argv[])
{
Expand Down
16 changes: 16 additions & 0 deletions mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,18 @@ MainWindow::MainWindow(QWidget *parent) :
connect(vkeyinit,SIGNAL(status(QString)),this,SLOT(status(QString)));
connect(vkeyinit,SIGNAL(finished()),this,SLOT(initFinished()));

_vkeyinit2=new vkeyinit2();
connect(_vkeyinit2,SIGNAL(status(QString)),this,SLOT(status(QString)));
connect(_vkeyinit2,SIGNAL(finished()),this,SLOT(init2Finished()));

ui->radioButtonQualityape->setEnabled(false);
ui->radioButtonQualityflac->setEnabled(false);

ui->pushButtonDownload->setEnabled(false);
vkeyinit->init();



}

MainWindow::~MainWindow()
Expand All @@ -39,9 +48,16 @@ MainWindow::~MainWindow()

void MainWindow::initFinished()
{
_vkeyinit2->init();
ui->pushButtonDownload->setEnabled(true);
}

void MainWindow::init2Finished()
{
ui->radioButtonQualityape->setEnabled(true);
ui->radioButtonQualityflac->setEnabled(true);
}

void MainWindow::status(QString inString)
{
ui->textEdit->append(inString);
Expand Down
4 changes: 3 additions & 1 deletion mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "help.h"
#include "thanks.h"
#include "vkeyinit.h"
#include "vkeyinit2.h"

#include "proxyform.h"

Expand Down Expand Up @@ -62,7 +63,7 @@ private slots:

void on_pushButton_clicked();
void initFinished();

void init2Finished();
private:
Ui::MainWindow *ui;
qqmusic *q;
Expand All @@ -72,6 +73,7 @@ private slots:
proxyForm *p;

vkeyInit *vkeyinit;
vkeyinit2 *_vkeyinit2;


};
Expand Down
8 changes: 5 additions & 3 deletions musicDownloader.pro
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ SOURCES += \
thanks.cpp \
help.cpp \
proxyform.cpp \
vkeyinit.cpp
vkeyinit.cpp \
vkeyinit2.cpp

HEADERS += \
mainwindow.h \
Expand All @@ -59,15 +60,16 @@ HEADERS += \
thanks.h \
help.h \
proxyform.h \
vkeyinit.h
vkeyinit.h \
vkeyinit2.h

FORMS += \
mainwindow.ui \
help.ui \
thanks.ui \
proxyform.ui

VERSION = 1.5.1
VERSION = 1.6.0

QMAKE_TARGET_PRODUCT = QQMusic&NeteaseMusicDownloader
QMAKE_TARGET_COMPANY = z52c
Expand Down
6 changes: 3 additions & 3 deletions musicDownloader.pro.user
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.6.1, 2018-06-13T22:27:08. -->
<!-- Written by QtCreator 4.6.1, 2018-07-05T23:09:06. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
Expand Down Expand Up @@ -62,7 +62,7 @@
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.11.0 MinGW 32bit_static</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.11.0 MinGW 32bit_static</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{0c47e6e6-c7e4-4aa1-85fa-c060226e239c}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
Expand Down Expand Up @@ -292,7 +292,7 @@
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">musicDownloader.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">D:/QtProject/build-musicDownloader-Desktop_Qt_5_11_0_MinGW_32bit_static-Release</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
Expand Down
1 change: 1 addition & 0 deletions qqmusic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ qqmusic::qqmusic(QObject *parent) : QObject(parent)
connect(song,SIGNAL(status(QString)),this,SIGNAL(status(QString)));
connect(song,SIGNAL(progress(qint64,qint64)),this,SIGNAL(progress(qint64,qint64)));
connect(song,SIGNAL(finished(int)),this,SLOT(songDownloadFinished(int)));

}

void qqmusic::doJob(QString inlink)
Expand Down
4 changes: 2 additions & 2 deletions qqmusicsong.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -163,10 +163,10 @@ void qqMusicSong::getSongLink()
mp3Link=QString(DOWNLOADLINKHEAD)+QString("M800")+mediaMid+QString(".mp3")+QString(DOWNLOADLINKMID)+vkey+QString(DOWNLOADLINKGUID)+guid+QString(DOWNLOADLINKTAIL);
break;
case 3:
mp3Link=QString(DOWNLOADLINKHEAD)+QString("F000")+mediaMid+QString(".flac")+QString(DOWNLOADLINKMID)+vkey+QString(DOWNLOADLINKGUID)+guid+QString(DOWNLOADLINKTAIL);
mp3Link=QString(NDOWNLOADLINKHEAD)+QString("F000")+mediaMid+QString(".flac")+QString(NDOWNLOADLINKMID)+vkey2+QString(NDOWNLOADLINKTAIL);
break;
case 4:
mp3Link=QString(DOWNLOADLINKHEAD)+QString("A000")+mediaMid+QString(".ape")+QString(DOWNLOADLINKMID)+vkey+QString(DOWNLOADLINKGUID)+guid+QString(DOWNLOADLINKTAIL);
mp3Link=QString(NDOWNLOADLINKHEAD)+QString("A000")+mediaMid+QString(".ape")+QString(NDOWNLOADLINKMID)+vkey2+QString(NDOWNLOADLINKTAIL);
break;
default:
mp3Link=QString(DOWNLOADLINKHEAD)+QString("M500")+mediaMid+QString(".mp3")+QString(DOWNLOADLINKMID)+vkey+QString(DOWNLOADLINKGUID)+guid+QString(DOWNLOADLINKTAIL);
Expand Down
1 change: 1 addition & 0 deletions qqmusicsong.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ extern QString mp3FileName;
extern QString mp3Dir;
extern QString vkey;
extern QString guid;
extern QString vkey2;


class qqMusicSong : public QObject
Expand Down
48 changes: 48 additions & 0 deletions vkeyinit2.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#include "vkeyinit2.h"
#include "daye.h"
#include "config.h"
#include <QtDebug>

vkeyinit2::vkeyinit2(QObject *parent) : QObject(parent)
{
d=new downloader();
connect(d,SIGNAL(finished()),this,SLOT(htmlGot()));
connect(d,SIGNAL(downloadError(QString)),this,SLOT(htmlFailed()));
}

void vkeyinit2::init()
{
QString htmlLink=QString("https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?g_tk=0&loginUin=1008611&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&cid=205361747&uin=1008611&songmid=003a1tne1nSz1Y&filename=C400003a1tne1nSz1Y.m4a&guid=1234567890");
d->init(htmlLink,QString(SONGHTMLFILE));
d->setUserAgent("Dalvik/2.1.0 (Linux; U; Android 5.1.1; vivo x5s l Build/LMY48Z)");
d->setReferer("https://y.qq.com/portal/profile.html");
d->doGet();
}

void vkeyinit2::htmlFailed()
{
emit status("无法下载无损歌曲");
}

void vkeyinit2::htmlGot()
{
QString line;
QFile file(SONGHTMLFILE);
int a;
char tmp[200];
if(file.open(QIODevice::ReadOnly))
{
line=file.readLine();
if(line.contains("vkey"))
{
a=getStringBetweenAandB(line.toStdString().c_str(),"vkey\":\"","\"",tmp);
if(!a && strlen(tmp))
{
vkey2=QString(tmp);
qDebug()<<vkey2;
emit finished();
}
}
file.close();
}
}
25 changes: 25 additions & 0 deletions vkeyinit2.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#ifndef VKEYINIT2_H
#define VKEYINIT2_H

#include <QObject>
#include "downloader.h"

extern QString vkey2;

class vkeyinit2 : public QObject
{
Q_OBJECT
public:
explicit vkeyinit2(QObject *parent = nullptr);
void init();
signals:
void finished();
void status(QString);
private slots:
void htmlGot();
void htmlFailed();
private:
downloader *d;
};

#endif // VKEYINIT2_H

0 comments on commit 1b3baf1

Please sign in to comment.