// const Podcast = require('podcast')
const express = require('express')
// const ip = require('ip')
const Logger = require('./Logger')

// Not functional at the moment - just an idea
class RssFeeds {
  constructor(Port, db) {
    this.Port = Port
    this.db = db
    this.feeds = {}

    this.router = express()
    this.init()
  }

  init() {
    this.router.get('/:id', this.getFeed.bind(this))
  }

  getFeed(req, res) {
    Logger.info('Get Feed', req.params.id, this.feeds[req.params.id])

    var feed = this.feeds[req.params.id]
    if (!feed) return null
    var xml = feed.buildXml()
    res.set('Content-Type', 'text/xml')
    res.send(xml)
  }

  openFeed(audiobook) {
    // Removed Podcast npm package and ip package
    return null
    // var ipAddress = ip.address('public', 'ipv4')
    // var serverAddress = 'http://' + ipAddress + ':' + this.Port
    // Logger.info('Open RSS Feed', 'Server address', serverAddress)

    // var feedId = (Date.now() + Math.floor(Math.random() * 1000)).toString(36)
    // const feed = new Podcast({
    //   title: audiobook.title,
    //   description: 'AudioBookshelf RSS Feed',
    //   feed_url: `${serverAddress}/feeds/${feedId}`,
    //   image_url: `${serverAddress}/Logo.png`,
    //   author: 'advplyr',
    //   language: 'en'
    // })
    // audiobook.tracks.forEach((track) => {
    //   feed.addItem({
    //     title: `Track ${track.index}`,
    //     description: `AudioBookshelf Audiobook Track #${track.index}`,
    //     url: `${serverAddress}/feeds/${feedId}?track=${track.index}`,
    //     author: 'advplyr'
    //   })
    // })
    // this.feeds[feedId] = feed
    // return feed
  }
}
module.exports = RssFeeds