Skip to content

Commit

Permalink
2024年8月らじる仕様変更対応
Browse files Browse the repository at this point in the history
  • Loading branch information
CSReviser committed Aug 18, 2024
1 parent e40ee72 commit 5e6b73e
Show file tree
Hide file tree
Showing 8 changed files with 213 additions and 93 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ qt_add_resources(CaptureStream "stylesheet"
"/"
FILES
${stylesheet_resource_files}
icon.png
)

if(APPLE)
Expand Down
53 changes: 42 additions & 11 deletions downloadthread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -224,12 +224,14 @@ std::tuple<QStringList, QStringList, QStringList, QStringList, QStringList> Down
QStringList file_titleList; file_titleList.clear();
QStringList hdateList; hdateList.clear();
QStringList yearList; yearList.clear();
int l = 10 ; int l_length = url.length();
if ( l_length != 13 ) l = l_length -3 ;

int json_ohyo = 0 ;
if ( url.contains( "_x1" ) ) { url.replace( "_x1", "_01" ); json_ohyo = 1 ; };
if ( url.contains( "_y1" ) ) { url.replace( "_y1", "_01" ); json_ohyo = 2 ; };

const QString jsonUrl1 = "https://www.nhk.or.jp/radio-api/app/v1/web/ondemand/series?site_id=" + url.left(4) + "&corner_site_id=" + url.right(2);
const QString jsonUrl1 = "https://www.nhk.or.jp/radio-api/app/v1/web/ondemand/series?site_id=" + url.left( l ) + "&corner_site_id=" + url.right(2);

QString strReply;
int flag = 0;
Expand Down Expand Up @@ -783,11 +785,13 @@ bool DownloadThread::captureStream_json( QString kouza, QString hdate, QString f
CustomizeDialog::formats( "json", titleFormat, fileNameFormat );
QString outputDir = MainWindow::outputDir;
QString extension = ui->comboBox_extension->currentText();
if (MainWindow::koza_separation_flag) fileNameFormat.remove( "%s" );
QString Xml_koza = "";
Xml_koza = map.value( json_path );
bool ouyou_koza_separation_flag = Xml_koza.contains( "kouza3", Qt::CaseInsensitive) && (fileNameFormat.contains( "%s", Qt::CaseInsensitive) || fileNameFormat.contains( "%x", Qt::CaseInsensitive) || MainWindow::koza_separation_flag ) ; if (MainWindow::koza_separation_flag) fileNameFormat.remove( "%s" );
if ( nogui_flag ) std::tie( titleFormat, fileNameFormat, outputDir, extension ) = Utility::nogui_option( titleFormat, fileNameFormat, outputDir, extension );

// QString id3tagTitle = title;
if ( json_path.contains( "_01", Qt::CaseInsensitive ) && (fileNameFormat.contains( "%s", Qt::CaseInsensitive) || fileNameFormat.contains( "%x", Qt::CaseInsensitive) || MainWindow::koza_separation_flag ) ) {
if ( ouyou_koza_separation_flag ) {
// if ( fileNameFormat.contains( "%s", Qt::CaseInsensitive) || fileNameFormat.contains( "%x", Qt::CaseInsensitive) ) {
if ( title.contains( "入門", Qt::CaseInsensitive) ) kouza = kouza + " 入門編";
if ( title.contains( "初級", Qt::CaseInsensitive) ) kouza = kouza + " 初級編";
Expand Down Expand Up @@ -1027,17 +1031,44 @@ QString DownloadThread::paths[] = {
};

QString DownloadThread::json_paths[] = {
"6805_01", "6806_01", "6807_01", "6808_01",
"2331_01", "0916_01", "6809_01",
"3064_01",
"0915_01", "6581_01", "0953_x1", "0000",
"0946_x1", "0000", "0951_01", "6810_01",
"0943_x1", "0000", "0948_x1", "0000", "0956_x1", "0000",
"4121_01",
"7512_01", "0937_01", "7629_01", "2769_01"
"GGQY3M1929_01", "148W8XX226_01", "83RW6PK3GG_01", "B2J88K328M_01",
"8Z6XJ6J415_01", "PMMJ59J6N2_01", "368315KKP8_01",
"BR8Z3NX7XM_01",
"983PKQPYN7_01", "MYY93M57V6_01", "XQ487ZM61K_x1", "0000",
"LJWZP7XVMX_x1", "0000", "LR47WW9K14_01", "NLJM5V3WXK_01",
"N8PZRZ9WQY_x1", "0000", "NRZWXVGQ19_x1", "0000", "YRLK72JZ7Q_x1", "0000",
"7Y5N5G674R_01",
"77RQWQX1L6_01", "WKMNWGMN6R_01", "D6RM27PGVM_01", "N13V9K157Y_01"
};

QMap<QString, QString> DownloadThread::map = {
{ "GGQY3M1929_01", "english/basic0" }, // 小学生の基礎英語
{ "148W8XX226_01", "english/basic1" }, // 中学生の基礎英語 レベル1
{ "83RW6PK3GG_01", "english/basic2" }, // 中学生の基礎英語 レベル2
{ "B2J88K328M_01", "english/basic3" }, // 中高生の基礎英語 in English
{ "8Z6XJ6J415_01", "english/timetrial" }, // 英会話タイムトライアル
{ "PMMJ59J6N2_01", "english/kaiwa" }, // ラジオ英会話
{ "368315KKP8_01", "english/business1" }, // ラジオビジネス英語
{ "BR8Z3NX7XM_01", "english/enjoy" }, // エンジョイ・シンプル・イングリッシュ
{ "XQ487ZM61K_x1", "french/kouza" }, // まいにちフランス語 入門編
{ "XQ487ZM61K_y1", "french/kouza2" }, // まいにちフランス語 応用編
{ "N8PZRZ9WQY_x1", "german/kouza" }, // まいにちドイツ語 入門編
{ "N8PZRZ9WQY_y1", "german/kouza2" }, // まいにちドイツ語 応用編
{ "NRZWXVGQ19_x1", "spanish/kouza" }, // まいにちスペイン語 入門編
{ "NRZWXVGQ19_y1", "spanish/kouza2" }, // まいにちスペイン語 応用編
{ "LJWZP7XVMX_x1", "italian/kouza" }, // まいにちイタリア語 入門編
{ "LJWZP7XVMX_y1", "italian/kouza2" }, // まいにちイタリア語 応用編
{ "YRLK72JZ7Q_x1", "russian/kouza" }, // まいにちロシア語 入門編
{ "YRLK72JZ7Q_y1", "russian/kouza2" }, // まいにちロシア語 応用編
{ "983PKQPYN7_01", "chinese/kouza" }, // まいにち中国語
{ "MYY93M57V6_01", "chinese/stepup" }, // ステップアップ中国語
{ "LR47WW9K14_01", "hangeul/kouza" }, // まいにちハングル講座
{ "NLJM5V3WXK_01", "hangeul/stepup" }, // ステップアップ ハングル講座
{ "XQ487ZM61K_01", "french/kouza3" }, // まいにちフランス語 入門編/初級編/応用編
{ "N8PZRZ9WQY_01", "german/kouza3" }, // まいにちドイツ語 入門編/初級編/応用編
{ "NRZWXVGQ19_01", "spanish/kouza3" }, // まいにちスペイン語 入門編/初級編/中級編/応用編
{ "LJWZP7XVMX_01", "italian/kouza3" }, // まいにちイタリア語 入門編/初級編/応用編
{ "YRLK72JZ7Q_01", "russian/kouza3" }, // まいにちロシア語 入門編/初級編/応用編
{ "6805_01", "english/basic0" }, // 小学生の基礎英語
{ "6806_01", "english/basic1" }, // 中学生の基礎英語 レベル1
{ "6807_01", "english/basic2" }, // 中学生の基礎英語 レベル2
Expand Down
1 change: 1 addition & 0 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ int main(int argc, char *argv[])

QApplication a(argc, argv);
MainWindow w;
QGuiApplication::setWindowIcon(QIcon(":icon.png"));
Utility::nogui() ? w.download() : w.show();
return a.exec();
}
31 changes: 18 additions & 13 deletions mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,13 @@
#define SETTING_OPT_TITLE2 "opt_title2"
#define SETTING_OPT_TITLE3 "opt_title3"
#define SETTING_OPT_TITLE4 "opt_title4"
#define OPTIONAL1 "7512_01" // ニュースで学ぶ「現代英語」
#define OPTIONAL2 "0937_01" // アラビア語講座
#define OPTIONAL3 "7629_01" // Learn Japanese from the News
#define OPTIONAL4 "2769_01" // ポルトガル語講座
#define OPTIONAL1 "77RQWQX1L6_01" // ニュースで学ぶ「現代英語」
#define OPTIONAL2 "WKMNWGMN6R_01" // アラビア語講座
#define OPTIONAL3 "GLZQ4M519X_01" // Asian View
#define OPTIONAL4 "N13V9K157Y_01" // ポルトガル語講座
#define Program_TITLE1 "ニュースで学ぶ「現代英語」"
#define Program_TITLE2 "アラビア語講座"
#define Program_TITLE3 "Learn Japanese from the News"
#define Program_TITLE3 "Asian View"
#define Program_TITLE4 "ポルトガル語講座"

#ifdef QT4_QT5_WIN
Expand Down Expand Up @@ -118,11 +118,11 @@ namespace {
// int day = regexp.cap( 2 ).toInt();
// result = QString( " (%1/%2/%3)" ).arg( regexp.cap( 3 ) )
// .arg( month, 2, 10, QLatin1Char( '0' ) ).arg( day, 2, 10, QLatin1Char( '0' ) );
result = QString( " (2024/06/05)" );
result = QString( " (2024/08/18)" );
}
#endif
#ifdef QT6
result = QString( " (2024/06/05)" );
result = QString( " (2024/08/18)" );
#endif
return result;
}
Expand All @@ -146,6 +146,9 @@ QString MainWindow::suffix = "listdataflv.xml";
QString MainWindow::json_prefix = "https://www.nhk.or.jp/radioondemand/json/";
QString MainWindow::no_write_ini;
bool MainWindow::koza_separation_flag = false;
bool MainWindow::id_flag = false;
QStringList MainWindow::idList;
QStringList MainWindow::titleList;

MainWindow::MainWindow( QWidget *parent )
: QMainWindow( parent ), ui( new Ui::MainWindowClass ), downloadThread( NULL ) {
Expand All @@ -163,8 +166,8 @@ MainWindow::MainWindow( QWidget *parent )
#ifdef QT4_QT5_MAC // Macのウィンドウにはメニューが出ないので縦方向に縮める
// setMaximumHeight( maximumHeight() - menuBar()->height() );
// setMinimumHeight( maximumHeight() - menuBar()->height() );
setMaximumHeight( maximumHeight() ); // ダウンロードボタンが表示されない問題対策 2022/04/16
setMinimumHeight( maximumHeight() ); // ダウンロードボタンが表示されない問題対策 2022/04/16
setMaximumHeight( maximumHeight() + ( menuBar()->height() - 24 ) * 2 ); // レコーディングボタンが表示されない問題対策 2024/06/06
setMinimumHeight( maximumHeight() + ( menuBar()->height() - 24 ) * 2 ); // レコーディングボタンが表示されない問題対策 2024/06/06
// QRect rect = geometry();
// rect.setHeight( rect.height() - menuBar()->height() );
// rect.setHeight( rect.height() ); // ダウンロードボタンが表示されない問題対策 2022/04/16
Expand Down Expand Up @@ -476,6 +479,7 @@ void MainWindow::settings( enum ReadWriteMode mode ) {
QString extension = settings.value( textComboBoxes[i].key, textComboBoxes[i].defaultValue ).toString();
textComboBoxes[i].comboBox->setCurrentIndex( textComboBoxes[i].comboBox->findText( extension ) );
}
std::tie( idList, titleList ) = Utility::getProgram_List();
} else { // 設定書き出し
//#if defined( QT4_QT5_MAC ) || defined( QT4_QT5_WIN ) //(2022/11/01:Linux向けに変更)
settings.setValue( SETTING_GEOMETRY, saveGeometry() );
Expand Down Expand Up @@ -534,17 +538,18 @@ void MainWindow::customizeScramble() {
QString optional_temp[] = { optional1, optional2, optional3, optional4, "NULL" };
ScrambleDialog dialog( optional1, optional2, optional3, optional4 );
if (dialog.exec() ) {
QString pattern( "[0-9]{4}" );
QString pattern( "[A-Z0-9]{4} || [A-Z0-9]{10}" );
pattern = QRegularExpression::anchoredPattern(pattern);
for ( int i = 0; optional_temp[i] != "NULL"; i++ )
if ( QRegularExpression(pattern).match( optional_temp[i] ).hasMatch() ) optional_temp[i] += "_01";

QString optional[] = { dialog.scramble1(), dialog.scramble2(), dialog.scramble3(), dialog.scramble4(), "NULL" };
QString title[8];
QStringList idList;
QStringList titleList;
std::tie( idList, titleList ) = Utility::getProgram_List();
// QStringList idList;
// QStringList titleList;
// std::tie( idList, titleList ) = Utility::getProgram_List();
for ( int i = 0; optional[i] != "NULL"; i++ ) {
optional[i] = Utility::four_to_ten( optional[i] );
if ( idList.contains( optional[i] ) ) title[i] = titleList[idList.indexOf( optional[i] )];
// for ( int k = 0; k < idList.count() ; k++ ) { if ( optional[i] == idList[k] ) {title[i] = titleList[k]; break;} }
if ( title[i] == "" ) { title[i] = Utility::getProgram_name( optional[i] ); }
Expand Down
5 changes: 4 additions & 1 deletion mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,10 @@ class MainWindow : public QMainWindow {
static QString program_title4;
static QString no_write_ini;
static bool koza_separation_flag;

static bool id_flag;
static QStringList idList;
static QStringList titleList;

protected:
virtual void closeEvent( QCloseEvent *event );

Expand Down
56 changes: 28 additions & 28 deletions scrambledialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,47 +32,47 @@ QString ScrambleDialog::optional4;


QString ScrambleDialog::opt1[] = {
"7512_01", // ニュースで学ぶ「現代英語」
"0937_01", // アラビア語講座
"7880_01", // Asian View
"2769_01" // ポルトガル語講座
"77RQWQX1L6_01", // ニュースで学ぶ「現代英語」
"WKMNWGMN6R_01", // アラビア語講座
"GLZQ4M519X_01", // Asian View
"N13V9K157Y_01" // ポルトガル語講座
};
QString ScrambleDialog::opt2[] = {
"0953_x1", //まいにちフランス語 入門編/初級編
"0943_x1", //まいにちドイツ語 入門編/初級編
"0946_x1", //まいにちイタリア語 入門編/初級編
"0948_x1" //まいにちスペイン語 入門編/初級編
"XQ487ZM61K_x1", //まいにちフランス語 入門編/初級編
"N8PZRZ9WQY_x1", //まいにちドイツ語 入門編/初級編
"LJWZP7XVMX_x1", //まいにちイタリア語 入門編/初級編
"NRZWXVGQ19_x1" //まいにちスペイン語 入門編/初級編
};
QString ScrambleDialog::opt3[] = {
"0953_y1", //まいにちフランス語 応用編
"0943_y1", //まいにちドイツ語 応用編
"0946_y1", //まいにちイタリア語 応用編
"0948_y1" //まいにちスペイン語 応用編
"XQ487ZM61K_y1", //まいにちフランス語 応用編
"N8PZRZ9WQY_y1", //まいにちドイツ語 応用編
"LJWZP7XVMX_y1", //まいにちイタリア語 応用編
"NRZWXVGQ19_y1" //まいにちスペイン語 応用編
};
QString ScrambleDialog::opt4[] = {
"0956_x1", //まいにちロシア語 入門編/初級編
"0956_y1", //まいにちロシア語 応用編
"7155_01", //Living in Japan
"0701_01", //やさしい日本語
"YRLK72JZ7Q_x1", //まいにちロシア語 入門編/初級編
"YRLK72JZ7Q_y1", //まいにちロシア語 応用編
"4MY6Q8XP88_01", //Living in Japan
"6LPPKP6W8Q_01", //やさしい日本語
};
QString ScrambleDialog::opt5[] = {
"6311_01", //おしゃべりな古典教室
"1929_01", //カルチャーラジオ 文学の世界
"0961_01", //古典講読
"3065_01" //カルチャーラジオ 科学と人間
"R5XR783QK3_01", //おしゃべりな古典教室
"DK83KZ8848_01", //カルチャーラジオ 文学の世界
"5L3859P515_01", //古典講読
"XKR4W8GY15_01" //カルチャーラジオ 科学と人間
};
QString ScrambleDialog::opt6[] = {
"0164_01", //青春アドベンチャー
"0930_01", //新日曜名作座
"8062_01", //朗読
"0058_01" //FMシアター
"X4X6N1XG8Z_01", //青春アドベンチャー
"D85RZVGX7W_01", //新日曜名作座
"LRK2VXPK5X_01", //朗読
"M65G6QLKMY_01" //FMシアター
};

QString ScrambleDialog::opt7[] = {
"7792_01", //梶裕貴のラジオ劇場
"0960_01", //こころをよむ
"7412_01", //アナウンサー百年百話
"0424_01" //宗教の時間
"4K58V66ZGQ_01", //梶裕貴のラジオ劇場
"X78J5NKWM9_01", //こころをよむ
"MVYJ6PRZMX_01", //アナウンサー百年百話
"JWQ88ZVWQK_01" //宗教の時間
};


Expand Down
Loading

0 comments on commit 5e6b73e

Please sign in to comment.