Jaydle journal

  1. Bash scripts to Java processbuilder program migration.
  2. Add jmenubar and add action (used inner class)
  3. Implemented JFileChooser
  4. Implemented swingworker class doinbackground
  5. Object serialization to store save directory data
  6. Used system property variables for default save directory
  7. Initialize .ser file to store data.
  8. ID3Tag viewer implementation, using mpatric mp3agic
  9. Used jtable to display id3 tags
  10. Windows YouTube-dl execution program write but it needs ffmpeg to extract audio, this is not done
  11. Wrote JaydleMusicManager which can handle MP3 files ID3 tags and move other directory
  12. Put in order eclipse project file (not pushed to GitHub yet)
Advertisements

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 クラス

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

Jaydle Development Journal:JA(va) Y(outube)D(l)-E(xtended)

I’m going to make post about note of jaydle development.
This is program which enhance youtube-dl command.

First I made prototype in bash.

It can download simultaneously and can download by just search keywords.
E.G

“jaydle -keywords tsunami disasters”

will downloads result videos top 10 automatically.
And I have numbering option from the top search result.
So you can know the order of search result after downloading.

But this shell script needing edit somehow. LoL.

I’m planning to make public journal of Jaydle development. e.g. Implementing SwingWorker, Menu bar, Serialization of the store path, …

So watching me!!!