begin implementing m3u loading into database
This commit is contained in:
parent
a80da909b7
commit
4dd212dff8
3 changed files with 76 additions and 0 deletions
45
src/main/java/com/mykola2312/mptv/db/M3ULoader.java
Normal file
45
src/main/java/com/mykola2312/mptv/db/M3ULoader.java
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
package com.mykola2312.mptv.db;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import org.jooq.*;
|
||||||
|
import org.jooq.impl.*;
|
||||||
|
import static com.mykola2312.mptv.tables.Category.*;
|
||||||
|
|
||||||
|
import com.mykola2312.mptv.db.pojo.Category;
|
||||||
|
import com.mykola2312.mptv.parser.M3U;
|
||||||
|
|
||||||
|
public class M3ULoader {
|
||||||
|
public static void loadAll(ArrayList<M3U> items) {
|
||||||
|
// cache categories' ids
|
||||||
|
HashMap<String, Integer> categories = new HashMap<>();
|
||||||
|
for (M3U item : items) {
|
||||||
|
// category
|
||||||
|
if (item.groupTitle != null) {
|
||||||
|
Integer id;
|
||||||
|
Category category = DSL.using(DB.CONFIG)
|
||||||
|
.select()
|
||||||
|
.from(CATEGORY)
|
||||||
|
.where(CATEGORY.TITLE.eq(item.groupTitle))
|
||||||
|
.limit(1)
|
||||||
|
.fetchOne()
|
||||||
|
.into(Category.class);
|
||||||
|
if (category == null) {
|
||||||
|
id = DSL.using(DB.CONFIG)
|
||||||
|
.insertInto(CATEGORY, CATEGORY.TITLE)
|
||||||
|
.values(item.groupTitle)
|
||||||
|
.returningResult(CATEGORY.ID)
|
||||||
|
.fetchOne()
|
||||||
|
.into(Integer.class);
|
||||||
|
} else {
|
||||||
|
id = category.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
categories.put(item.groupTitle, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// channel
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
src/main/java/com/mykola2312/mptv/db/pojo/Category.java
Normal file
11
src/main/java/com/mykola2312/mptv/db/pojo/Category.java
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.mykola2312.mptv.db.pojo;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
|
||||||
|
public class Category {
|
||||||
|
@Column(name = "ID")
|
||||||
|
public int id;
|
||||||
|
|
||||||
|
@Column(name = "TITLE")
|
||||||
|
public String title;
|
||||||
|
}
|
||||||
20
src/main/java/com/mykola2312/mptv/db/pojo/Channel.java
Normal file
20
src/main/java/com/mykola2312/mptv/db/pojo/Channel.java
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.mykola2312.mptv.db.pojo;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
|
||||||
|
public class Channel {
|
||||||
|
@Column(name = "ID")
|
||||||
|
public int id;
|
||||||
|
|
||||||
|
@Column(name = "CATEGORY")
|
||||||
|
public int category;
|
||||||
|
|
||||||
|
@Column(name = "TITLE")
|
||||||
|
public String title;
|
||||||
|
|
||||||
|
@Column(name = "URL")
|
||||||
|
public String url;
|
||||||
|
|
||||||
|
@Column(name = "LOGO")
|
||||||
|
public String logo;
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue