Jaydle 開発を振り返る:文書化を目指して

Jaydle 開発を振り返る:文書化を目指して

振り返って、知識のシェア、整理、リファクタリング、関数(メソッド)、広告などに役立てるつもり。

 

Jaydleの構想はbashスクリプトから生まれた。

その時は、ループでスクリプトを走らせた時、同時にダウンロードができないことや、ナンバリングがタイトルにされていなくて、順序がわからなくなっていた。

基本的にはyoutube-dlというコマンドラインのプログラムを基盤としたスクリプトだ。

https://github.com/iamaturtle113/Jaydle/blob/master/Youtube-Dl-Extended_Functions.sh
最近手入れしていなくて、一部不調だと思う。。。

 

次にそれをJavaで書き直して、GUIをつけることにした。

https://github.com/iamaturtle113/jaydle-project

ここでまず必要となったのがProcessBuilder APIだった。

Process APIでも各練習をした。

最初は難しいAPIだと思った。

 

次にSwing APIを使い、ウィンドウを作り、そこにURL入力用のテキストフィールドと、結果出力用のテキストエリアを埋め込んだ。

 

しかし結果出力用のテキストエリアにyoutube-dlからの出力を逐次反映させることがまた難しかったのであった。

SwingWorker クラス

 

  • bashスクリプト
  • youtube-dl
  • ProcessBuilder API, Process API
  • Swing API
  • SwingWorker クラス
Advertisements

Java programming error: Declaration error

In the class declaration area

static List<File> mp3FilesList=new ArrayList<File>();
static mp3FilesList=regexFilterFileArray(dirMp3,"mp3");

was no good.

static List<File> mp3FilesList=regexFilterFileArray(dirMp3,"mp3");

was O.K.

Guess return statement treatment error.😉

regexFilterFileArray(dirMp3,”mp3″) returns List<File> filteredFileList;

 //Returns List of filtered File objects
public static List<File> regexFilterFileArray(File searchDirectory, String patternStr)
{
//Init List
List<File> filteredFileList=new ArrayList<File>();
try 
{

//make pattern object
Pattern pattern=Pattern.compile(patternStr);
//make File[] of searchDirectory's files
File[] contentFileOfDirectory=searchDirectory.listFiles();
Arrays.sort(contentFileOfDirectory);

//make matcher object
for(int i=0;i<contentFileOfDirectory.length;i++)
{
Matcher matcher=pattern.matcher(contentFileOfDirectory[i].getName());
if(matcher.find())
{
filteredFileList.add(contentFileOfDirectory[i]);
}
}//rof
} //yrt
catch(Exception exc)
{
println("Exception occured at regexFilterFileArray.");
exc.printStackTrace();
}
return filteredFileList;
}// End of regexFilterFileArray