panjareh
Version:
Panjareh using aparat and phoenix-video-player to play videos on desktops and tvs.
372 lines (370 loc) • 12.5 kB
JavaScript
/* eslint-disable */
const consts = {
/** ==================================================
* LAGUAGE
* =================================================*/
// List of ISO 639-1 codes (https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
languages: [
{ code: "ab", name: "Abkhazian" },
{ code: "aa", name: "Afar" },
{ code: "af", name: "Afrikaans" },
{ code: "ak", name: "Akan" },
{ code: "sq", name: "Albanian" },
{ code: "am", name: "Amharic" },
{ code: "ar", name: "Arabic" },
{ code: "an", name: "Aragonese" },
{ code: "hy", name: "Armenian" },
{ code: "as", name: "Assamese" },
{ code: "av", name: "Avaric" },
{ code: "ae", name: "Avestan" },
{ code: "ay", name: "Aymara" },
{ code: "az", name: "Azerbaijani" },
{ code: "bm", name: "Bambara" },
{ code: "ba", name: "Bashkir" },
{ code: "eu", name: "Basque" },
{ code: "be", name: "Belarusian" },
{ code: "bn", name: "Bengali" },
{ code: "bh", name: "Bihari languages" },
{ code: "bi", name: "Bislama" },
{ code: "bs", name: "Bosnian" },
{ code: "br", name: "Breton" },
{ code: "bg", name: "Bulgarian" },
{ code: "my", name: "Burmese" },
{ code: "ca", name: "Catalan, Valencian" },
{ code: "km", name: "Central Khmer" },
{ code: "ch", name: "Chamorro" },
{ code: "ce", name: "Chechen" },
{ code: "ny", name: "Chichewa, Chewa, Nyanja" },
{ code: "zh", name: "Chinese" },
{
code: "cu",
name: "Church Slavonic," + " Old Bulgarian, Old Church Slavonic",
},
{ code: "cv", name: "Chuvash" },
{ code: "kw", name: "Cornish" },
{ code: "co", name: "Corsican" },
{ code: "cr", name: "Cree" },
{ code: "hr", name: "Croatian" },
{ code: "cs", name: "Czech" },
{ code: "da", name: "Danish" },
{ code: "dv", name: "Divehi, Dhivehi, Maldivian" },
{ code: "nl", name: "Dutch, Flemish" },
{ code: "dz", name: "Dzongkha" },
{ code: "en", name: "English", label: "انگلیسی" },
{ code: "eo", name: "Esperanto" },
{ code: "et", name: "Estonian" },
{ code: "ee", name: "Ewe" },
{ code: "fo", name: "Faroese" },
{ code: "fj", name: "Fijian" },
{ code: "fi", name: "Finnish" },
{ code: "fr", name: "French", label: "فرانسوی" },
{ code: "ff", name: "Fulah" },
{ code: "gd", name: "Gaelic, Scottish Gaelic" },
{ code: "gl", name: "Galician" },
{ code: "lg", name: "Ganda" },
{ code: "ka", name: "Georgian" },
{ code: "de", name: "German" },
{ code: "ki", name: "Gikuyu, Kikuyu" },
{ code: "el", name: "Greek (Modern)" },
{ code: "kl", name: "Greenlandic, Kalaallisut" },
{ code: "gn", name: "Guarani" },
{ code: "gu", name: "Gujarati" },
{ code: "ht", name: "Haitian, Haitian Creole" },
{ code: "ha", name: "Hausa" },
{ code: "he", name: "Hebrew" },
{ code: "hz", name: "Herero" },
{ code: "hi", name: "Hindi" },
{ code: "ho", name: "Hiri Motu" },
{ code: "hu", name: "Hungarian" },
{ code: "is", name: "Icelandic" },
{ code: "io", name: "Ido" },
{ code: "ig", name: "Igbo" },
{ code: "id", name: "Indonesian" },
{
code: "ia",
name: "Interlingua " + "(International Auxiliary Language Association)",
},
{ code: "ie", name: "Interlingue" },
{ code: "iu", name: "Inuktitut" },
{ code: "ik", name: "Inupiaq" },
{ code: "ga", name: "Irish" },
{ code: "it", name: "Italian" },
{ code: "ja", name: "Japanese" },
{ code: "jv", name: "Javanese" },
{ code: "kn", name: "Kannada" },
{ code: "kr", name: "Kanuri" },
{ code: "ks", name: "Kashmiri" },
{ code: "kk", name: "Kazakh" },
{ code: "rw", name: "Kinyarwanda" },
{ code: "kv", name: "Komi" },
{ code: "kg", name: "Kongo" },
{ code: "ko", name: "Korean" },
{ code: "kj", name: "Kwanyama, Kuanyama" },
{ code: "ku", name: "Kurdish" },
{ code: "ky", name: "Kyrgyz" },
{ code: "lo", name: "Lao" },
{ code: "la", name: "Latin" },
{ code: "lv", name: "Latvian" },
{ code: "lb", name: "Letzeburgesch, Luxembourgish" },
{ code: "li", name: "Limburgish, Limburgan, Limburger" },
{ code: "ln", name: "Lingala" },
{ code: "lt", name: "Lithuanian" },
{ code: "lu", name: "Luba-Katanga" },
{ code: "mk", name: "Macedonian" },
{ code: "mg", name: "Malagasy" },
{ code: "ms", name: "Malay" },
{ code: "ml", name: "Malayalam" },
{ code: "mt", name: "Maltese" },
{ code: "gv", name: "Manx" },
{ code: "mi", name: "Maori" },
{ code: "mr", name: "Marathi" },
{ code: "mh", name: "Marshallese" },
{ code: "ro", name: "Moldovan, Moldavian, Romanian" },
{ code: "mn", name: "Mongolian" },
{ code: "na", name: "Nauru" },
{ code: "nv", name: "Navajo, Navaho" },
{ code: "nd", name: "Northern Ndebele" },
{ code: "ng", name: "Ndonga" },
{ code: "ne", name: "Nepali" },
{ code: "se", name: "Northern Sami" },
{ code: "no", name: "Norwegian" },
{ code: "nb", name: "Norwegian Bokmål" },
{ code: "nn", name: "Norwegian Nynorsk" },
{ code: "ii", name: "Nuosu, Sichuan Yi" },
{ code: "oc", name: "Occitan (post 1500)" },
{ code: "oj", name: "Ojibwa" },
{ code: "or", name: "Oriya" },
{ code: "om", name: "Oromo" },
{ code: "os", name: "Ossetian, Ossetic" },
{ code: "pi", name: "Pali" },
{ code: "pa", name: "Panjabi, Punjabi" },
{ code: "ps", name: "Pashto, Pushto" },
{ code: "fa", name: "Persian", label: "فارسی" },
{ code: "pl", name: "Polish" },
{ code: "pt", name: "Portuguese" },
{ code: "qu", name: "Quechua" },
{ code: "rm", name: "Romansh" },
{ code: "rn", name: "Rundi" },
{ code: "ru", name: "Russian" },
{ code: "sm", name: "Samoan" },
{ code: "sg", name: "Sango" },
{ code: "sa", name: "Sanskrit" },
{ code: "sc", name: "Sardinian" },
{ code: "sr", name: "Serbian" },
{ code: "sn", name: "Shona" },
{ code: "sd", name: "Sindhi" },
{ code: "si", name: "Sinhala, Sinhalese" },
{ code: "sk", name: "Slovak" },
{ code: "sl", name: "Slovenian" },
{ code: "so", name: "Somali" },
{ code: "st", name: "Sotho, Southern" },
{ code: "nr", name: "South Ndebele" },
{ code: "es", name: "Spanish, Castilian" },
{ code: "su", name: "Sundanese" },
{ code: "sw", name: "Swahili" },
{ code: "ss", name: "Swati" },
{ code: "sv", name: "Swedish" },
{ code: "tl", name: "Tagalog" },
{ code: "ty", name: "Tahitian" },
{ code: "tg", name: "Tajik" },
{ code: "ta", name: "Tamil" },
{ code: "tt", name: "Tatar" },
{ code: "te", name: "Telugu" },
{ code: "th", name: "Thai" },
{ code: "bo", name: "Tibetan" },
{ code: "ti", name: "Tigrinya" },
{ code: "to", name: "Tonga (Tonga Islands)" },
{ code: "ts", name: "Tsonga" },
{ code: "tn", name: "Tswana" },
{ code: "tr", name: "Turkish" },
{ code: "tk", name: "Turkmen" },
{ code: "tw", name: "Twi" },
{ code: "ug", name: "Uighur, Uyghur" },
{ code: "uk", name: "Ukrainian" },
{ code: "ur", name: "Urdu" },
{ code: "uz", name: "Uzbek" },
{ code: "ve", name: "Venda" },
{ code: "vi", name: "Vietnamese" },
{ code: "vo", name: "Volap_k" },
{ code: "wa", name: "Walloon" },
{ code: "cy", name: "Welsh" },
{ code: "fy", name: "Western Frisian" },
{ code: "wo", name: "Wolof" },
{ code: "xh", name: "Xhosa" },
{ code: "yi", name: "Yiddish" },
{ code: "yo", name: "Yoruba" },
{ code: "za", name: "Zhuang, Chuang" },
{ code: "zu", name: "Zulu" },
],
/** ==================================================
* STATE
* =================================================*/
STATE_NORMAL: "normal",
STATE_ADS: "ads",
/** ==================================================
* PRELOAD
* =================================================*/
PRELOAD_AUTO: "auto",
PRELOAD_METADATA: "metadata",
PRELOAD_NONE: "none",
/** ==================================================
* ASPECTRATIO
* =================================================*/
ASPECTRATIO_AUTO: "auto",
ASPECTRATIO_169: "16:9",
ASPECTRATIO_43: "4:3",
/** ==================================================
* THEME
* =================================================*/
THEME_DEFAULT: "default",
THEME_ARVAN: "arvan",
/** ==================================================
* POSITION
* =================================================*/
POSITION_TOP_LEFT: "TL",
POSITION_TOP_RIGHT: "TR",
POSITION_BOTTOM_LEFT: "BL",
POSITION_BOTTOM_RIGHT: "BR",
/** ==================================================
* ADS CLIENT
* =================================================*/
ADS_CLIENT_ARVAN: "arvan",
ADS_CLIENT_VAST: "vast",
ADS_CLIENT_IMA: "ima",
/** ==================================================
* TYPE
* =================================================*/
TYPE_AUDIO: "audio",
TYPE_VIDEO: "video",
/** ==================================================
* MODE
* =================================================*/
MODE_STATIC: "static",
MODE_LIVE: "live",
/** ==================================================
* FORMAT
* =================================================*/
FORMAT_MP3: "mp3",
FORMAT_MP4: "mp4",
FORMAT_HLS: "hls",
FORMAT_DASH: "dash",
/** ==================================================
* EXTENSION
* =================================================*/
EXTENSION_MP3: "mp3",
EXTENSION_MP4: "mp4",
EXTENSION_HLS: "m3u8",
EXTENSION_DASH: "mpd",
/** ==================================================
* MIMETYPE
* =================================================*/
MIMETYPE_MP3: ["audio/mpeg", "audio/mp3"],
MIMETYPE_MP4_AUDIO: "audio/mp4",
MIMETYPE_MP4_VIDEO: "video/mp4",
MIMETYPE_HLS: "application/x-mpegurl",
MIMETYPE_DASH: "application/dash+xml",
/** ==================================================
* OWNER
* =================================================*/
OWNER_URL: process.env.NEXT_PUBLIC_SITE_URL,
OWNER_NAME: process.env.NEXT_PUBLIC_SITE_NAME,
/** ==================================================
* PLAYBACK
* =================================================*/
CHUNK_MIN_LEN: 5, // seconds
/* ===================================================
KAFKA (Message broker)
===================================================
*/
THRESHOLD: {
WATCHING: 3,
SHORT_MOVIE: 20,
WATCHED: (duration) => {
let _duration = duration;
if (typeof _duration === "string") {
_duration = parseInt(_duration);
}
return Math.round((97 * _duration) / 100);
},
},
/** ===================================================
* PLAYER
* ====================================================
*/
PLAYER_CONFIG: {
autofocus: true,
autoplay: false,
muted: false,
controls: true,
playbackRates: [1, 1.25, 1.5],
techOrder: ["html5"],
flash: {
swf: "/video/video-js.swf",
},
html5: {
nativeTextTracks: false,
vhs: {
overrideNative: true, // add this line
enableLowInitialPlaylist: true,
smoothQualityChange: true,
},
},
preload: "meta",
language: "fa",
aspectratio: null,
touchnativecontrols: false,
share: false,
contextMenu: {
content: [
{
href: process.env.NEXT_PUBLIC_SITE_URL,
label: process.env.NEXT_PUBLIC_SITE_NAME,
},
],
},
logo: {
image: "/static/image/filmgardi-text-white.png",
url: process.env.NEXT_PUBLIC_SITE_URL,
position: "top-right",
width: 90,
height: 30,
fadeDelay: null,
},
seekButtons: {
forward: 30,
back: 10,
},
liveSeekButtons: {
back: 10,
},
httpSource: {
httpSourceSelector: {
default: "auto",
},
},
},
DEFAULT_PLAYER_CONFIG: {
mediaid: "neXMyg6gk9",
behavior: {
type: "video",
mode: "static",
preload: "auto",
autostart: false,
repeat: false,
mute: false,
},
appearance: {
lang: "fa",
controls: true,
aspectratio: null,
touchnativecontrols: false,
skin: "arvan",
color: null,
share: false,
contextmenu: true,
displaytitle: true,
displaydescription: false,
},
},
};
export default consts;