Series.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import Series from 'App/Models/Series'
  2. import Episode from 'App/Models/Episode'
  3. import BaseSeeder from '@ioc:Adonis/Lucid/Seeder'
  4. import { readdirSync, readFileSync } from 'fs'
  5. import { join } from 'path'
  6. import Decimal from 'decimal.js'
  7. export default class extends BaseSeeder {
  8. public async run() {
  9. // Write your database queries inside the run method
  10. const dir = '/Volumes/Data HD/shortplay/downloaded/'
  11. for (let file of readdirSync(dir)
  12. .filter((file) => /^[^\.].*\.json$/.test(file))
  13. .splice(0, 10)) {
  14. const data = JSON.parse(readFileSync(join(dir, file)).toString())
  15. console.log(data.video.title)
  16. const series = await Series.create({
  17. title: data.video.title,
  18. cover: data.video.img,
  19. price: new Decimal('999')
  20. })
  21. let i = 0
  22. for (let s of data.series) {
  23. await Episode.create({
  24. seriesId: series.id,
  25. episodeNum: s.sn,
  26. video: s.path,
  27. price: ++i > 10 ? new Decimal('99') : new Decimal('0')
  28. })
  29. }
  30. }
  31. }
  32. }