# JSDoc: Source: app/channel/media/media.js

# 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;
        }
    }