52 lines
1.4 KiB
Swift
52 lines
1.4 KiB
Swift
//
|
|
// KissConsole+News.swift
|
|
// KissMeConsole
|
|
//
|
|
// Created by ened-book-m1 on 2023/08/02.
|
|
//
|
|
|
|
import Foundation
|
|
import KissMe
|
|
|
|
|
|
struct NewsList: Codable {
|
|
let list: [DomesticNews.NewsTitle]
|
|
}
|
|
|
|
|
|
extension KissConsole {
|
|
|
|
static func newsListUrl(day: String) -> URL {
|
|
let subPath = "data-news/\(day)"
|
|
let subFile = "\(subPath)/list.json"
|
|
|
|
let fileUrl = URL.currentDirectory().appending(path: subFile)
|
|
createSubpath(subPath)
|
|
return fileUrl
|
|
}
|
|
|
|
// static func newsArticleUrl(day: String) -> URL {
|
|
// let subPath = "data-news/\(day)"
|
|
// let subFile = "\(subPath)/"
|
|
// }
|
|
|
|
func writeNewsList(_ list: NewsList, day: Date) throws {
|
|
let listJson = KissConsole.newsListUrl(day: day.yyyyMMdd)
|
|
|
|
let jsonData = try JSONEncoder().encode(list)
|
|
try jsonData.write(to: listJson, options: .atomic)
|
|
}
|
|
|
|
func readNewsList(day: Date) throws -> NewsList {
|
|
let listJson = KissConsole.newsListUrl(day: day.yyyyMMdd)
|
|
|
|
let data = try Data(contentsOf: listJson, options: .uncached)
|
|
let newsList = try JSONDecoder().decode(NewsList.self, from: data)
|
|
return newsList
|
|
}
|
|
|
|
func writeNewsArticle(_ article: DomesticNews.NewsArticle, title: DomesticNews.NewsTitle, day: Date) throws {
|
|
// let articleJson = KissConsole.newsArticleUrl(day: day.yyyyMMdd)
|
|
}
|
|
}
|