Source: app/channel/media/media.js

/*Canopy - The next generation of stoner streaming software
Copyright (C) 2024-2025 Rainbownapkin and the TTN Community

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.*/

/**
 * Object representing a piece of media
 */
module.exports = class{
    /**
     * Creates a new media object from scraped information
     * @param {String} title - Chosen title of media
     * @param {String} fileName - Original filename/title of media provided by source
     * @param {String} url - Original URL to file
     * @param {String} id - Video ID from source (IE: youtube watch code/archive.org file path)
     * @param {String} type - Original video source
     * @param {Number} duration - Length of media in seconds
     * @param {String} rawLink - URL to raw file copy of media, not applicable to all sources
     */
    constructor(title, fileName, url, id, type, duration, rawLink = url){
        this.title = title;
        this.fileName = fileName
        this.url = url;
        this.id = id;
        this.type = type;
        this.duration = duration;
        this.rawLink = rawLink;
    }
}