code:
if (typeof Object.assign != 'function') {
    Object.assign = function () {
	var target = arguments[0];
    for (var i = 1; i < arguments.length; i++) {
        var source = arguments[i];
        for (var key in source) {
            if (Object.prototype.hasOwnProperty.call(source, key)) {
                target[key] = source[key];
            }
        }
    }
    return target;
};
}
function getMubans() {
    var mubanDict = { // 模板字典
        mxpro: {
            title: '',
            host: '',
            // homeUrl:'/',
            url: '/vodshow/fyclass--------fypage---.html',
            searchUrl: '/vodsearch/**----------fypage---.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {//网站的请求头,完整支持所有的,常带ua和cookies
                'User-Agent': 'MOBILE_UA',
                // "Cookie": "searchneed=ok"
            },
            class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
            二级: {
                "title": "h1&&Text;.module-info-tag&&Text",
                "img": ".lazyload&&data-original",
                "desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
                "content": ".module-info-introduction&&Text",
                "tabs": ".module-tab-item",
                "lists": ".module-play-list:eq(#id) a"
            },
            搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
        },
        mxone5: {
            title: '',
            host: '',
            url: '/show/fyclass--------fypage---.html',
            searchUrl: '/search/**----------fypage---.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
            二级: {
                "title": "h1&&Text;.tag-link&&Text",
                "img": ".module-item-pic&&img&&data-src",
                "desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
                "content": ".vod_content&&Text",
                "tabs": ".module-tab-item",
                "lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
            },
            搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
        },
        首图: {
            title: '',
            host: '',
            url: '/vodshow/fyclass--------fypage---/',
            searchUrl: '/vodsearch/**----------fypage---.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {//网站的请求头,完整支持所有的,常带ua和cookies
                'User-Agent': 'MOBILE_UA',
                // "Cookie": "searchneed=ok"
            },
            class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
            二级: {
                "title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
                "img": ".myui-content__thumb .lazyload&&data-original",
                "desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
                "content": ".content&&Text",
                "tabs": ".nav-tabs:eq(0) li",
                "lists": ".myui-content__list:eq(#id) li"
            },
            搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
        },
        首图2: {
            title: '',
            host: '',
            url: '/list/fyclass-fypage.html',
            searchUrl: '/vodsearch/**----------fypage---.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {
                'User-Agent': 'UC_UA',
                // "Cookie": ""
            },
            // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
            class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
            二级: {
                "title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
                "img": ".stui-content__thumb .lazyload&&data-original",
                "desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
                "content": ".detail&&Text",
                "tabs": ".stui-vodlist__head h3",
                "lists": ".stui-content__playlist:eq(#id) li"
            },
            搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
            搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
            搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
        },
        默认: {
            title: '',
            host: '',
            url: '/vodshow/fyclass--------fypage---.html',
            searchUrl: '/vodsearch/-------------.html?wd=**',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {
                'User-Agent': 'MOBILE_UA',
            },
            play_parse: true,
            lazy: '',
            limit: 6,
            double: true, // 推荐内容是否双层定位
        },
        vfed: {
            title: '',
            host: '',
            url: '/index.php/vod/show/id/fyclass/page/fypage.html',
            searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {
                'User-Agent': 'UC_UA',
            },
            // class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
            class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
            二级: {
                "title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
                "img": ".fed-list-info&&a&&data-original",
                "desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
                "content": ".fed-part-esan&&Text",
                "tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
                "lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
            },
            搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
        },
        海螺3: {
            title: '',
            host: '',
            searchUrl: '/v_search/**----------fypage---.html',
            url: '/vod_____show/fyclass--------fypage---.html',
            headers: {
                'User-Agent': 'MOBILE_UA'
            },
            timeout: 5000,
            class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
            cate_exclude: '明星|专题|最新|排行',
            limit: 40,
            play_parse: true,
            lazy: '',
            推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
            double: true,
            一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
            二级: {
                "title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
                "img": ".hl-lazy&&data-original",
                "desc": ".hl-infos-content&&.hl-text-conch&&Text",
                "content": ".hl-content-text&&Text",
                "tabs": ".hl-tabs&&a",
                "lists": ".hl-plays-list:eq(#id)&&li"
            },
            搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
        },
        海螺2: {
            title: '',
            host: '',
            searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
            url: '/index.php/vod/show/id/fyclass/page/fypage/',
            headers: {
                'User-Agent': 'MOBILE_UA'
            },
            timeout: 5000,
            class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
            limit: 40,
            play_parse: true,
            lazy: '',
            推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
            double: true,
            一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
            二级: {
                "title": "h2&&Text;.deployment&&Text",
                "img": ".lazy&&data-original",
                "desc": ".deployment&&Text",
                "content": ".ec-show&&Text",
                "tabs": "#tag&&a",
                "lists": ".play_list_box:eq(#id)&&li"
            },
            搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
        },
        短视: {
            title: '',
            host: '',
            // homeUrl:'/',
            url: '/channel/fyclass-fypage.html',
            searchUrl: '/search.html?wd=**',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            headers: {//网站的请求头,完整支持所有的,常带ua和cookies
                'User-Agent': 'MOBILE_UA',
                // "Cookie": "searchneed=ok"
            },
            class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
            cate_exclude: '解析|动态',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
            double: true, // 推荐内容是否双层定位
            一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
            二级: {
                "title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
                "img": ".img&&img&&data-src",
                "desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
                "content": ".zkjj_a&&Text",
                "tabs": ".py-tabs&&option",
                "lists": ".player:eq(#id) li"
            },
            搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
        },
        短视2:{
            title: '',
            host: '',
            class_name:'电影&电视剧&综艺&动漫',
            class_url:'1&2&3&4',
            searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
            searchable: 2,
            quickSearch: 0,
            headers:{'User-Agent':'MOBILE_UA'},
            url: '/index.php/api/vod#type=fyclass&page=fypage',
            filterable:0,//是否启用分类筛选,
            filter_url:'',
            filter: {},
            filter_def:{},
            detailUrl:'/index.php/vod/detail/id/fyid.html',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
            一级:'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
            二级:{
                "title":".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
                "img":".detail-pic&&data-original",
                "desc":".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
                "content":"#height_limit&&Text",
                "tabs":".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
                "tab_text":".swiper-slide&&Text",
                "lists":".anthology-list-box:eq(#id) li"
            },
            搜索:'json:list;name;pic;;id',
        }
    };
    return JSON.parse(JSON.stringify(mubanDict));
}
var mubanDict = getMubans();
var muban = getMubans();
export default {muban,getMubans};


code:
var rule = {
	title:'武享吧',
	host:'https://www.hula8.net',
	url: '/fyclass/page/fypage',
	searchUrl: '/page/fypage/?s=**',
	searchable:2,
	quickSearch:0,
	headers:{
		'User-Agent': 'PC_UA',
		'Referer': 'https://www.hula8.net/',
		'Cookie':'esc_search_captcha=1;result=12'
	},
	timeout:5000,//网站的全局请求超时,默认是3000毫秒
	class_parse: '#menu-xinjian&&li;a&&Text;a&&href;net/(.*)',
	play_parse:true,
	cate_exclude:'首 页|赛事预告|美国格斗赛|亚洲格斗赛|其他格斗赛|日本搏击赛|裸拳赛',
	limit:6,
	推荐: 'div.apc-grid-item;*;*;.views&&Text;a&&href',
	一级: '.site-main&&article;img&&alt;img&&data-original;.grid-inf-l&&Text;a&&href',
	二级: {
		"title": "h1&&Text;.module-info-tag&&Text",
		"img": ".aligncenter&&data-original",
		"desc": ";;;.views:eq(0)&&Text;",
		"content": "h1&&Text",
		"tabs": "js:TABS=['道长在线']",
		"lists": `js:
			var html = JSON.parse(request(input).match(/var bevideo_vids_.*?=({[\\s\\S]*?});/)[1]);
			let list = [];
			list = html.m3u8dplayer.map(function(item) {
				return item.pre + "$" + item.video
			});
			LISTS = [list];
		`
	},
	搜索: '*;*;*;.entry-meta&&Text;*',
}

license: unknown


code:
var rule = {
    title:'海洋听书',
    编码:'gb18030',
    host:'http://m.ychy.cc',
    homeUrl:'/best.html',
    url:'/list/fyclass_fypage.html',
    searchUrl:'/search.asp?page=fypage&searchword=**&searchtype=-1',
    searchable:2,
    quickSearch:0,
    headers:{
        'User-Agent':'MOBILE_UA'
    },
    class_name:'网络玄幻&恐怖悬疑&评书下载&儿童读物&相声戏曲&传统武侠&都市言情&历史军事&人物传记&广播剧&百家讲坛&有声文学&探险盗墓&职场商战',
    class_url:'52&17&3&4&7&12&13&15&16&18&32&41&45&81',
    play_parse:true,
    lazy:'',
    limit:6,
    double:true,
    推荐:'*',
    一级:'.list-ul li;.tit&&Text;img&&src;p span:eq(0)&&Text;a&&href',
    二级:{
    	title:'h2&&Text;.info div:eq(4)&&Text',
    	img:'.bookimg img&&src',
    	desc:'.info div:eq(3)&&Text;;;.info div:eq(2)&&Text;.info div:eq(1)&&Text',
    	content:'.book_intro&&Text',
	    tabs:'.sub_tit',
    	lists:'#playlist li',
    },
    搜索:"js:let d=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;log(input);let html=request(input);var list=pdfa(html,'.book_slist&&.bookbox');list.forEach(function(it){d.push({title:pdfh(it,'h4&&Text'),desc:pdfh(it,'.update&&Text'),pic_url:pd(it,'img&&orgsrc'),url:'http://m.ychy.com/book/'+pdfh(it,'.bookbox&&bookid')+'.html'})});setResult(d);",
}


code:
var rule =
   {
    title: '热播之家',
    host: 'https://rebozj.pro',
    url: '/type/fyclass-fypage.html',
    searchUrl: '/search/**----------fypage---.html',
    searchable: 2,//是否启用全局搜索,
    quickSearch: 0,//是否启用快速搜索,
    filterable: 0,//是否启用分类筛选,
    headers: {
        'User-Agent': 'UC_UA',
        // "Cookie": ""
    },
    // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
    class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
    play_parse: true,
    lazy: '',
    limit: 6,
    推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
    double: true, // 推荐内容是否双层定位
    一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
    二级: {
        "title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
        "img": ".stui-content__thumb .lazyload&&data-original",
        "desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
        "content": ".detail&&Text",
        "tabs": ".stui-vodlist__head h4",
        "lists": ".stui-content__playlist:eq(#id) li"
    },
    搜索: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.text-right&&Text',
}


code:
var rule = {
    title:'猫了个咪',
    host:'http://119.28.59.69:8089',
    homeUrl:'/latest/',
    url:'/api/video/index#class=fyclass&page=fypage',
    searchUrl:'/api/special/video?params=#keyword=**&page=fypage',
    headers:{
        'User-Agent':'MOBILE_UA'
    },
    // searchable:2,
    quickSearch:0,
    timeout:5000,
    class_name:'全部&国产专区&欧美精品&动漫&中文字幕&人气女忧&不雅视频&韩三级&热剧大人版&抖音妹合集&猫咪自拍',
    class_url:'0&32&16&31&34&35&37&39&40&41&42',
    limit:5,
    play_parse:true,
    lazy:'js:log(input);',
    lazy:'js:let VID=input.split(";")[1];let VURL=input.split(";")[0];var fn=rc("maomi_aes.js");let url=VURL+"?params="+fn.En(\'{"id":"\'+VID+\'"}\');input=JSON.parse(fn.De(request(url))).data.video_item[0].file;',
    一级:'',
    一级:'js:let d=[];let bodys={access_token:"",cate_id:MY_CATE,identifier:"ffffffff-c67a-899b-ffff-ffffef05ac4a",page:MY_PAGE,region:0,type_id:0,vip:0,year:""};var fn=rc("maomi_aes.js");bodys=fn.En(stringify(bodys));let obj={headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"POST",body:"params="+bodys+"&version=26&sign="+md5("QEBBQADSwrXIXaNqBmMofjfRY/8Sxaxgparams"+bodys+"version26QEBBQADSwrXIXaNqBmMofjfRY/8Sxaxg")};let api=input.split("#")[0];let html=JSON.parse(fn.De(request(api,obj)));html.data.data.forEach(function(it){d.push({title:it.name,img:it.image,desc:it.rate,url:api.replace("index","detail")+";"+it.id})});setResult(d);',
    二级:'*',
    搜索:'',
    // 搜索:'js:let bodys={keyword:KEY,page:MY_PAGE};var fn=rc("maomi_aes.js");bodys=fn.En(stringify(bodys));let url=input.split("#")[0];print(url);var html=JSON.parse(fn.De(request(url+bodys)));let d=html.data.data.map(function(data){return{title:data.video_name,img:data.image,desc:data.rate,url:"http://119.28.59.69:8089/api/video/detail?params=;"+fn.En(\'{"id":"\'+data.video_id+\'"}\')}});setResult(d);',

}


code:
var rule = {
    title:'相声随身听',
    host:'https://www.xsmp3.com',
    // url:'/fyclass/fypage.html',
    url:'/fyfilter/fypage.html',
    filterable:1,//是否启用分类筛选,
    filter_url:'{{fl.cateId}}',
    filter:{
        "gdg":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"gdg"},{"n":"郭德纲单口","v":"gdg-dk"},{"n":"郭德纲于谦","v":"gdg-yq"},{"n":"郭德纲张文顺","v":"gdg-zws"},{"n":"郭德纲李菁","v":"gdg-lj"},{"n":"郭德纲徐德亮","v":"gdg-xdl"},{"n":"郭德纲何云伟","v":"gdg-hyw"},{"n":"郭德纲曹云金","v":"gdg-cyj"},{"n":"郭德纲王玥波","v":"gdg-wyb"},{"n":"郭德纲王文林","v":"gdg-wwl"}]}],
        "dys":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"dys"},{"n":"德云社精选","v":"dys-jx"},{"n":"高峰相声全集","v":"dys-gf"},{"n":"岳云鹏相声全集","v":"dys-yyp"},{"n":"郭麒麟相声全集","v":"dys-gql"},{"n":"张鹤伦相声全集","v":"dys-zhl"},{"n":"孟鹤堂相声全集","v":"dys-mht"},{"n":"徐德亮王文林","v":"xdl-wwl"},{"n":"何云伟李菁","v":"hyw-lj"},{"n":"曹云金刘云天","v":"cyj-lyt"}]}]
    },
    filter_def:{
        gdg:{cateId:'gdg'},
        dys:{cateId:'dys'},
        xsxsl:{cateId:'xsxsl'},
        qqs:{cateId:'qqs'},
        msl:{cateId:'msl'},
        hbl:{cateId:'hbl'},
        lbr:{cateId:'lbr'},
        mj:{cateId:'mj'},
        hyw:{cateId:'hyw'},
        ssj:{cateId:'ssj'},
        jk:{cateId:'jk'},
        mzm:{cateId:'mzm'},
        yzh:{cateId:'yzh'},
        swm:{cateId:'swm'}
    },
    searchUrl:'/so/**_fypage.html',
    searchable:2,
    quickSearch:0,
    headers:{
        'User-Agent':'MOBILE_UA'
    },
    timeout:5000,
    class_parse: '.list-navi&&li;a&&Text;a&&href;/(\\w+).html',
    play_parse:true,
    lazy:'js:input={jx:0,url:input,parse:0}',
    limit:6,
    推荐:'*',
    一级:'#post_list_box&&li;h2&&Text;img&&src;.f_r&&span:eq(3)&&Text;a&&href',
    二级:{
        title:'h1&&Text;.view&&Text',
        img:'img&&src',
        desc:'.view&&Text;;;.lmname&&Text;.author&&Text',
        content:'.jAsrPyf4&&p:eq(1)&&Text',
        // tabs:'js:TABS=["相声随身听"]',
        lists:'js:var VideoListJson;VideoListJson=eval(html.split("audio: ")[1].split("}\)")[0]);let list1=[];VideoListJson.forEach(function(it){list1.push(it.name.strip()+"$https:"+it.url)});LISTS=[list1];',
    },
    搜索: '*',
}


code:
// 搜寻验证
var rule = {
    title:'短视频',
    host:'http://www.sharenice.net',
    url:'/fyclass?page=fypage',
    //searchUrl:'/video/search?search_key=**',
    searchable:0,
    quickSearch:0,
    headers:{
        'User-Agent':'PC_UA'
    },
    timeout:5000,
    // class_name:'抖音&快手&微视&火山&场库&体育&美拍&秒拍&全民&梨&好兔&美女&正能量&搞笑&社会&游戏&娱乐&旅游&萌系&生活&音乐&美食&明星&动漫&影视&时尚',
    class_name:'抖音&快手&微视&火山&场库&美拍&秒拍&全民&澎湃&好兔&开眼&美女&搞笑&社会&影视&音乐&娱乐&正能量&生活&动漫&体育&美食&萌系&旅游&游戏&明星&时尚',
    // class_url:'douyin&kuaishou&weishi&huoshan&changku&tags/t-5L2T6IKy.html&meipai&miaopai&quanmin&lishipin&haotu&tags/t-576O5aWz.html&tags/t-5q2j6IO96YeP.html&tags/t-5pCe56yR.html&tags/t-56S+5Lya.html&tags/t-5ri45oiP.html&tags/t-5aix5LmQ.html&tags/t-5peF5ri4.html&tags/t-6JCM57O7.html&tags/t-55Sf5rS7.html&tags/t-6Z+z5LmQ.html&tags/t-576O6aOf.html&tags/t-5piO5pif.html&tags/t-5Yqo5ryr.html&tags/t-5b2x6KeG.html&tags/t-5pe25bCa.html',
    class_url:'douyin&kuaishou&weishi&huoshan&changku&meipai&miaopai&quanmin&lishipin&haotu&kaiyan&t-576O5aWz&t-5pCe56yR&t-56S+5Lya&t-5b2x6KeG&t-6Z+z5LmQ&t-5aix5LmQ&t-5q2j6IO96YeP&t-55Sf5rS7&t-5Yqo5ryr&t-5L2T6IKy&t-576O6aOf&t-6JCM57O7&t-5peF5ri4&t-5ri45oiP&t-5piO5pif&t-5pe25bCa',
    play_parse:true,
    lazy:'js:/kuaishou/.test(input)?input=jsp.pdfh(request("http://m.sharenice.net/mobile"+input.split("net")[1]),".video-play-box&&video&&src"):input=jsp.pdfh(request("http://m.sharenice.net/mobile"+input.split("net")[1]),".video-play-box&&video&&src")+"#.mp4"',
    limit:6,
    double:false,
    推荐:'*',
    一级:'.item-box&&ul&&li;a&&title;img&&data-original;;a&&href',
    二级:'*',
}


code:
var rule = {
    title:'种子音乐',
    host:'https://www.zz123.com',
    homeUrl:'/list/mszm.htm?page=1',
    url:'/list/fyclass.htm?page=fypage',
    searchable:2,
    quickSearch:0,
    headers:{
        'User-Agent':'MOBILE_UA',
        'referer' : 'https://www.zz123.com/',
    },
    class_parse: '.taglist li;.tagitem&&data-name;.tagitem&&data-id',
    play_parse:true,
    // lazy:"js:input=input.replace(/play\\/(\\w+)\\.htm/,'ajax/?act=songinfo&id=$1&lang=');log(input);let mp3 = JSON.parse(request(input)).data.mp3;input={jx:0,url:mp3,parse:1,header:JSON.stringify({Referer:'https://www.zz123.com/'})}",
    lazy:"js:input=input.replace(/play\\/(\\w+)\\.htm/,'ajax/?act=songinfo&id=$1&lang=').replace('www.','');log(input);let mp3=JSON.parse(request(input)).data.mp3;input={jx:0,url:'https://zz123.com'+mp3,parse:1,header:JSON.stringify({Referer:'https://www.zz123.com/'})}",
    limit:6,
    图片来源:'@Referer=https://www.zz123.com/',
    推荐:"*",
    一级:'.mobile-list&&.mobile-list-item;.songname&&Text;.lazyload&&data-src;.authorname&&Text;a&&href',
    二级:'*',
    // searchUrl:'/search/?key=**&page=fypage',
    // 搜索:'*',
    searchUrl:'/ajax/?act=search&key=**&lang=',
    detailUrl:'/play/fyid.html',
    搜索:'json:data;mname;pic;sname;id',
}


code:
var rule = {
    title:'网易公版影像',
    host:'https://active.163.com',
    homeUrl:'/service/form/v1/9347/view/1618.jsonp?param_entry_kinds=his&page=1&pageSize=20',
    url:'/service/form/v1/9347/view/1618.jsonp?param_entry_kinds=fyclass&page=fypage&pageSize=20',
    class_name:'电影&纪录片&动画片&珍贵史料',
    class_url:'movie&doc&ani&his',
    searchUrl:'/service/form/v1/9347/view/1619.jsonp?_charset=UTF-8&_decode=UTF-8&param_title=**&page=fypage&pageSize=6',
    searchable:2,
    quickSearch:0,
    headers:{
        'User-Agent':'MOBILE_UA',
    },
    timeout:5000,
    limit:6,
    play_parse:true,
    lazy:'js:let vid = input.split("/view/")[1];var playJsonUrl="https://so.v.163.com/mobile/getBatchOnlineVideo.do?vidstr=";var reqUrl=playJsonUrl+vid;var reqJson=JSON.parse(request(reqUrl)).data.video_list[0];input={jx:0,url:reqJson.mp4SdUrl,parse:0}',
    // lazy:'',
    推荐:'*',
    一级:'json:list;title;cover_pic;meida_type;vid',
    二级:'*',
    搜索:'*',
}


code:
/* 已知问题:
1.图片是base64文本编码壳子无法显示
2.播放地址 https://ss.rongliren.com/api/video/m3u8?id=22180&admin=1 像这样，壳子无法播放
 */
var rule = {
    title:'苹果爱微',
    host:'https://files.yuchenglw.com',
    homeUrl:'/Index/lists?cat=1',
    url:'/Index/lists?cat=fyclass',
    headers:{
        'User-Agent':'IOS_UA'
    },
    searchable:0,
    quickSearch:0,
    timeout:5000,
    // play_json:[{re:'*', json:{jx:0, parse:1,header:JSON.stringify({"user-agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"})}}],
    // play_json:0,
    class_parse:'.childs a;a&&Text;a&&href;cat=(.*)',
    limit:5,
    play_parse:true,
    lazy:'',
    推荐:'*',
    一级:'.row.lists .item;.time&&Text;img&&data-src;.time&&Text;a&&href',
    // 二级:'*',
    二级:'*',
    图片来源:'@Referer=https://files.yuchenglw.com@Type=base64',
    lazy:'js:pd=jsp.pd;let html=request(input);let a=pd(html,"source&&src")+"#.m3u8";input=a'
}


code:
var rule = {
    title:'蜻蜓FM',
    host:'http://www.qingting.fm',
    url:'/radiopage/fyclass/fypage',
    searchUrl:'',
    searchable:0,
    quickSearch:0,
    class_name:'广东&浙江&北京&天津&河北&上海&山西&内蒙古&辽宁&吉林&黑龙江&江苏&安徽&福建&江西&山东&河南&湖北&湖南&广西&海南&重庆&四川&贵州&云南&陕西&甘肃&宁夏&新疆&西藏&青海&资讯&音乐&交通&经济&文艺&都市&体育&双语&综合&生活&旅游&曲艺&方言',
    class_url:'217&99&3&5&7&83&19&31&44&59&69&85&111&129&139&151&169&187&202&239&254&257&259&281&291&316&327&351&357&308&342&433&442&429&439&432&441&430&431&440&438&435&436&434',
    headers:{
        'User-Agent':'PC_UA'
    },
    timeout:5000,
    play_parse:true,
    play_json:0,
    lazy:'js:input=input.replace("www.qingting.fm/radios/","lhttp.qingting.fm/live/")+"/64k.mp3"',
    limit:6,
    double:false,
    //推荐:'*',
    一级:'.contentSec&&.radio;span&&Text;img&&src;.descRadio&&Text;a&&href',
    二级:'*',
    搜索:'',
}


code:
       var rule={
           title: '西瓜影院',
            host: 'https://www.uccomic.com',
            url: '/vodshow/fyclass--------fypage---/',
            searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
            searchable: 2,//是否启用全局搜索,
            quickSearch: 0,//是否启用快速搜索,
            filterable: 0,//是否启用分类筛选,
            class_parse: '.menulist.hidden-xs li:gt(0):lt(5);a&&Text;a&&href;.*/(.*?)/',
            play_parse: true,
            lazy: '',
            limit: 6,
            推荐: 'body&&.col-md-2.col-sm-3.col-xs-4;a&&title;a&&data-original;.note.textbg&&Text;a&&href',
            //double: true, // 推荐内容是否双层定位
            一级: 'body&&.col-md-2.col-sm-3.col-xs-4;a&&title;a&&data-original;.note.textbg&&Text;a&&href',
            二级: {
                "title": "h3&&Text",
                "img": "",
                "desc": "",
                "content": "",
                "tabs": ".option",
                "lists": ".playlistlink-1:eq(#id) li"
            },
              搜索:'json:list;name;pic;;id',
        }


code:
# 0123，对应，普通解析，json解析，并发多json解析，聚合解析,参数3不填默认0
# flags是线路名称标识,会自动拦截并走以下的解析
# 名称，链接，类型,ua (ua不填默认 Mozilla/5.0) 可以手动填 Dart/2.14 (dart:io)
# 轮询,Sequence,2
# 并发,Parallel,2
# 聚合,Demo,3

# 快看,http://api.8a5.cn/parse/kuaikan/de.php?url=,1
# 钢铁侠,https://json.freejx.in/?url=,1
# 绿叶,https://hc.izny.cn/json.php?url=,1
# 无名1,http://api.ckflv.cn/?url=,1
# 无名1,{{host}}/parse/api/无名.js?url=,1
很牛逼,http://rxjx.kuanjv.com/allm3u8.php?url=,1
虾米,https://dm.xmflv.com:4433/?url=
左岸,https://jx.bozrc.com:4433/player/analysis.php?v=
全网通,http://jx.nikucms.com/pc/index6.php?url=
91,http://91fanli.top/m3u8/?url=
BT5V,https://rx.bt5v.com/json/jsonindex.php/?url=,1
# 查询,https://chaxun.truechat365.com/?url= # 这个解析真的牛逼,只能电脑看
# llq,https://hc.izny.cn/json.php?url=,1
# 江湖,{{host}}/parse/api/江湖.js?url=,1
GGTV搜集,https://play.fuqizhishi.com/juhe/API.php?appkey=caijijuhe220902&url=,1,
CY,https://vip.cyu0.cn/home/api?type=ys&uid=1353484&key=efopqwABCLOTVYZ278&url=,1
# ggtv,https://play.fuqizhishi.com/jx/API.php?appkey=xiaobai888&url=,1
# 爱酷,https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url=,1
ok解析,https://okjx.cc/?url=
全民1,http://api.wpsseo.cn/?v=
m3u8tv,https://jx.m3u8.tv/jiexi/?url=
Fosi,https://play.fositv.com/?url=
诺讯,https://www.nxflv.com/?url=
傻逼聊,https://svip.spchat.top/api/?key=O9HGeIVUqU3REsnmQP&url=,1
208,https://v.2080kk.com/home/api?type=ys&uid=1308653&key=behnpstwxBCHJMQ029&url=,1
8090,https://www.8090.la/8090/?url=
365,https://chaxun.truechat365.com/?url=
# 爱酷,https://jx.zhanlangbu.com/API.php?appkey=53df3aa2fdb66bcbc4d05730b6fbfc71&url=,1
# 插萝莉,http://chaloli.cn/home/api?type=ys&uid=1&key=dklsuzIKNPRVW14568&url=,1
无名2,https://h5.freejson.xyz/player/?url=
无名3,https://freejx.rx88.top:1234/?url=
无名4,https://play.fositv.com/?url=
真聊,https://chaxun.truechat365.com/?url=
猪蹄,https://jx.iztyy.com/svip/?url=
m2090,https://m2090.com/?url=
# b = a.map(it=>it.name+','+it.url+','+it.type).join('\n');console.log(b);
# 思古解析,https://jsap.attakids.com/?url=
# 云解析,https://jx.ppflv.com/?url=
# 云解析2,https://jx.aidouer.net/?url=
# BL解析,https://vip.bljiex.cc/?v=
# 虾米解析,https://jx.xmflv.com/?url=
# 飞飞智能,https://y.9dan.cc/?v=
# 左岸解析,https://jx.bozrc.com:4433/player/?url=
# 8090解析,https://www.8090g.cn/?url=
# ckplayer无广,https://www.ckplayer.vip/jiexi/?url=
# 盘古无广,http://www.pangujiexi.cc/jiexi.php?url=
# 江湖,http://jx.vipmv.co/?url=


code:
var rule = {
    title:'评书随身听',
    host:'https://www.psmp3.com',
    // url:'/fyclass/fypage.html',
    url:'/fyfilter/fypage.html',
    filterable:1,//是否启用分类筛选,
    filter_url:'{{fl.cateId}}',
    filter:{
        "ykc":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"ykc"},{"n":"袁阔成三国演义","v":"ykc-sgyy"},{"n":"袁阔成水泊梁山","v":"ykc-sbls"},{"n":"袁阔成封神演义","v":"ykc-fsyy"},{"n":"袁阔成薛刚反唐","v":"ykc-xgft"},{"n":"袁阔成林海雪原","v":"ykc-lhxy"},{"n":"袁阔成楚汉相争","v":"ykc-chxz"},{"n":"袁阔成彭公案","v":"ykc-pga"},{"n":"袁阔成烈火金刚","v":"ykc-lhjg"},{"n":"袁阔成金钱镖","v":"ykc-jqb"},{"n":"袁阔成三气周瑜","v":"ykc-sqzy"},{"n":"袁阔成群英会","v":"ykc-qyh"},{"n":"袁阔成长坂雄风","v":"ykc-cbxf"},{"n":"袁阔成平原枪声","v":"ykc-pyqs"},{"n":"袁阔成暴风骤雨","v":"ykc-bfzy"},{"n":"野火春风斗古城","v":"ykc-yhcfdgc"}]}],
        "stf":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"stf"},{"n":"单田芳隋唐演义","v":"stf-styy"},{"n":"单田芳乱世枭雄","v":"stf-lsxx"},{"n":"单田芳白眉大侠","v":"stf-bmdx"},{"n":"单田芳童林传","v":"stf-tlz"},{"n":"单田芳水浒传","v":"stf-shz"},{"n":"单田芳三侠五义","v":"stf-sxwy"},{"n":"单田芳三侠剑","v":"stf-sxj"},{"n":"单田芳大明演义","v":"stf-dmyy"},{"n":"单田芳龙虎风云会","v":"stf-lhfyh"},{"n":"单田芳三国演义","v":"stf-sgyy"},{"n":"单田芳薛家将","v":"stf-xjj"},{"n":"单田芳清官册","v":"stf-qgc"},{"n":"单田芳小五义","v":"stf-xwy"},{"n":"单田芳铁扇怪侠","v":"stf-tsgx"},{"n":"单田芳楚汉争雄","v":"stf-chzx"}]}],
        "tly":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"tly"},{"n":"田连元水浒传","v":"tly-shz"},{"n":"田连元杨家将","v":"tly-yjj"},{"n":"田连元隋唐演义","v":"tly-styy"},{"n":"田连元三侠五义","v":"tly-sxwy"},{"n":"田连元刘秀传","v":"tly-lxz"},{"n":"田连元小八义","v":"tly-xby"},{"n":"田连元包公案","v":"tly-bga"},{"n":"田连元大话成语","v":"tly-dhcy"},{"n":"田连元双镖记","v":"tly-sbj"},{"n":"田连元海青天","v":"tly-hqt"},{"n":"田连元辽沈战役","v":"tly-lszy"},{"n":"田连元血溅津门","v":"tly-xjjm"},{"n":"田连元镜花缘","v":"tly-jhy"},{"n":"田连元孙庞斗智","v":"tly-spdz"},{"n":"田连元孙膑与庞涓","v":"tly-sbypj"}]}],
        "llf":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"llf"},{"n":"刘兰芳岳飞传","v":"llf-yfz"},{"n":"刘兰芳杨家将全传","v":"llf-yjjqz"},{"n":"刘兰芳呼家将","v":"llf-hjj"},{"n":"刘兰芳赵匡胤演义","v":"llf-zkyyy"},{"n":"刘兰芳朱元璋演义","v":"llf-zyzyy"},{"n":"刘兰芳红楼梦","v":"llf-hlm"},{"n":"刘兰芳五凤朝阳刀","v":"llf-wfcyd"},{"n":"刘兰芳新岳飞传","v":"llf-xyfz"},{"n":"刘兰芳杨家将","v":"llf-yjj"},{"n":"刘兰芳西唐演义","v":"llf-xtyy"},{"n":"刘兰芳樊梨花","v":"llf-flh"},{"n":"刘兰芳大唐侠女","v":"llf-dtxn"},{"n":"刘兰芳黑虎传","v":"llf-hhz"},{"n":"刘兰芳洪武大帝","v":"llf-hwdd"},{"n":"刘兰芳契丹萧太后","v":"llf-qdxth"}]}],
        "llr":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"llr"},{"n":"连丽如东汉演义","v":"llr-dhyy"},{"n":"连丽如大隋唐","v":"llr-dst"},{"n":"连丽如三国演义","v":"llr-sgyy"},{"n":"连丽如雍正剑侠图","v":"llr-yzjxt"},{"n":"连丽如红楼梦","v":"llr-hlm"},{"n":"连丽如龙图公案","v":"llr-ltga"},{"n":"连丽如鹿鼎记","v":"llr-ldj"},{"n":"连丽如刘公案","v":"llr-lga"},{"n":"连丽如康熙私访","v":"llr-kxsf"},{"n":"连丽如东周列国","v":"llr-dzlg"},{"n":"连丽如十二女侠","v":"llr-senx"},{"n":"连丽如智圣东方朔","v":"llr-zsdfs"},{"n":"连丽如侠义英雄传","v":"llr-xyyxz"},{"n":"连丽如蓬莱剑侠","v":"llr-pljx"},{"n":"连丽如康熙大帝","v":"llr-kxdd"}]}],
        "zsz":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"zsz"},{"n":"张少佐大明剑侠","v":"zsz-dmjx"},{"n":"张少佐雍正剑侠图","v":"zsz-yzjxt"},{"n":"张少佐天龙八部","v":"zsz-tlbb"},{"n":"张少佐昆仑剑侠","v":"zsz-kljx"},{"n":"张少佐多情剑客无情剑","v":"zsz-dqjkwqj"},{"n":"张少佐笑傲江湖","v":"zsz-xajh"},{"n":"张少佐射雕英雄传","v":"zsz-sdyxz"},{"n":"张少佐倚天屠龙记","v":"zsz-yttlj"},{"n":"张少佐神雕侠侣","v":"zsz-sdxl"},{"n":"张少佐钟凌传","v":"zsz-zlz"},{"n":"张少佐明史奇侠","v":"zsz-msqx"},{"n":"张少佐中国血案","v":"zsz-zgxa"},{"n":"张少佐神剑惊天刺雍正","v":"zsz-sjjtcyz"},{"n":"张少佐豪气惊天","v":"zsz-hqjt"},{"n":"张少佐乱世恩仇","v":"zsz-lsec"}]}],
        "tzy":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"tzy"},{"n":"田战义李自成","v":"tzy-lzc"},{"n":"田战义秘密列车","v":"tzy-mmlc"},{"n":"田战义民国风云","v":"tzy-mgfy"},{"n":"田战义夕照紫禁城","v":"tzy-xzzjc"},{"n":"田战义风雨关山","v":"tzy-fygs"},{"n":"田战义聊斋志异","v":"tzy-lzzy"},{"n":"田战义侠义豪杰","v":"tzy-xyhj"},{"n":"风云人物蒋介石","v":"tzy-fyrwjjs"},{"n":"田战义绝密行动","v":"tzy-jmxd"},{"n":"田战义燕子李三传奇","v":"tzy-yzlscq"},{"n":"田战义中国古代奇案","v":"tzy-zggdqa"},{"n":"田战义火牛阵","v":"tzy-hnz"},{"n":"田战义县委书记","v":"tzy-xwsj"},{"n":"田战义摧毁神风号","v":"tzy-chsfh"},{"n":"田战义仇大娘","v":"tzy-cdn"}]}]
    },
    filter_def:{
        ykc:{cateId:'ykc'},
        stf:{cateId:'stf'},
        tly:{cateId:'tly'},
        llf:{cateId:'llf'},
        llr:{cateId:'llr'},
        zsz:{cateId:'zsz'},
        tzy:{cateId:'tzy'}
    },
    searchUrl:'/so/**_fypage.html',
    searchable:2,
    quickSearch:0,
    headers:{
        'User-Agent':'MOBILE_UA'
    },
    timeout:5000,
    class_parse: '.list-navi&&li:gt(1);a&&Text;a&&href;/(\\w+).html',
    play_parse:true,
    lazy:'js:input={jx:0,url:input,parse:0}',
    limit:6,
    推荐:'*',
    一级:'#post_list_box&&li;h2&&Text;img&&src;.f_r&&span:eq(3)&&Text;a&&href',
    二级:{
        title:'h1&&Text;.view&&Text',
        img:'img&&src',
        desc:'.view&&Text;;;.lmname&&Text;.author&&Text',
        content:'.jAsrPyf4&&p:eq(1)&&Text',
        // tabs:'js:TABS=["评书随身听"]',
        lists:'js:var VideoListJson;VideoListJson=eval(html.split("audio: ")[1].split("}\)")[0]);let list1=[];VideoListJson.forEach(function(it){list1.push(it.name.strip()+"$https:"+it.url)});LISTS=[list1];',
    },
    搜索: '*',
}


code:
var rule = {
    title:'跑TV',
    host:'https://paotv.net',
    // homeUrl:'/',
    url:'/show/fyclass/page/fypage.html',
    //searchUrl:'/search-**----------fypage---/',
    searchable:0,//是否启用全局搜索,
    quickSearch:0,//是否启用快速搜索,
    filterable:0,//是否启用分类筛选,
    headers:{//网站的请求头,完整支持所有的,常带ua和cookies
        'User-Agent':'MOBILE_UA',
        // "Cookie": "searchneed=ok"
    },
    //class_parse:'.nav-menu-items&&li;a&&title;a&&href;/(\\d+).html',
    class_name:'国产&亚洲&欧美&伦理&动漫',
    class_url:'1&2&3&21&22',
    play_parse:true,
    lazy:'',
    limit:6,
    //推荐:'a.module-poster-item.module-item;a&&title;img&&data-original;.module-item-note&&Text;a&&href',
    推荐:'.tab-list.active;.module-poster-item.module-item;.module-poster-item-title&&Text;img&&data-original;.module-item-note&&Text;a&&href',
    double:true, // 推荐内容是否双层定位
    一级:'.module-poster-item.module-item;a&&title;img&&data-original;.module-item-note&&Text;a&&href',
    二级:{"title":"h1&&Text;.module-info-tag-link:eq(2)&&Text","img":".module-item-pic&&img&&data-original","desc":".module-info-content&&.module-info-item:eq(-2)&&Text;.module-info-content&&.module-info-item:eq(-4)&&Text;.module-info-content&&.module-info-item:eq(5)&&Text;.module-info-content&&.module-info-item:eq(3)&&.module-info-item-content&&Text;.module-info-content&&.module-info-item:eq(1)&&.module-info-item-content&&Text","content":".module-info-introduction-content&&Text","tabs":".module-tab-items-box:eq(0)&&.module-tab-item","lists":".module-list:eq(#id)&&.module-play-list-content a"},
    //搜索:'.module-card-item.module-item;.module-card-item-title&&Text;img&&data-src;.module-item-note&&Text;a.play-btn-o&&href',
}


code:
var rule = {
    title:'追剧迷',
    模板:'vfed',
    host:'https://www.zhuijumi.cc',
    // url:'/videotype/fyclass-fypage.html',
    url:'/mp4type/fyclass-fypage.html',
    searchUrl:'/vodsearch/**-fypage.html',
    class_parse: '.fed-part-tips li;a&&Text;a&&href;.*/(.*?).html',
    cate_exclude:'更多|申请',
	lazy:"js:var html=JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);var url=html.url;if(html.encrypt=='1'){url=unescape(url)}else if(html.encrypt=='2'){url=unescape(base64Decode(url))}if(/m3u8|mp4/.test(url)){input=url}else{input}",
    二级: {
        "title": "h1&&Text;.fed-col-xs6--span:eq(0)&&Text",
        "img": ".fed-list-info&&a&&data-original",
        "desc": ".fed-col-xs12.fed-part-eone:eq(3)&&Text;;;.fed-col-xs12.fed-part-eone--span:eq(0)&&Text;.fed-col-xs12.fed-part-eone--span:eq(1)&&Text",
        "content": ".fed-conv-text:eq(0)&&Text",
        "tabs": "ul.fed-padding&&li",
        "lists": ".fed-tabs-btm:eq(#id) li"
    },
    搜索: '.fed-list-deta;h1&&Text;.fed-lazy&&data-original;.fed-list-remarks&&Text;a&&href;.fed-col-xs12.fed-part-eone:eq(2)&&Text',
}


code:
var rule = {
    title:'酷6网',
    host:'https://www.ku6.com',
    homeUrl:'/video/feed?pageNo=0&pageSize=20',
    url:'/video/feed?subjectId=fyclass&pageNo=fypage',
    class_name:'资讯&娱乐&搞笑&少儿&自制节目&影视&音乐&原创&生活&游戏&健康&汽车&时事',
    class_url:'69&70&76&73&71&72&74&75&80&93&81&47&149',
    searchUrl:'',
    searchable:0,
    quickSearch:0,
    headers:{
        'User-Agent':'MOBILE_UA',
    },
    timeout:5000,
    limit:6,
    play_parse:true,
    lazy:'js:if(/detail.html/.test(input)){var vid=input.split("~")[1];var reqUrl="https://news-stream.lsttnews.com/topic/recommend/vinfo?vid="+vid;purl=JSON.parse(request(reqUrl)).data.video.src;input={jx:0,url:purl,parse:0}}else{input={jx:0,url:input,parse:0}}',
    // lazy:'',
    推荐:'*',
    一级:'json:data;title;picPath;publisher;playUrl',
    二级:'*',
    搜索:'',
}


code:
var rule = {
    title:'酷奇MV',
    host:'https://www.kuqimv.com',
    homeUrl:'/play/',
    url:'/play/fyclass_fypage.html',
    searchUrl:'/search.php?key=**&pages=fypage',
    searchable:2,
    quickSearch:0,
    class_parse:'.main:eq(1)&&li;a&&Text;a&&href;.*/(\\d+)_1.html',
    headers:{
        'User-Agent':'MOBILE_UA'
    },
    timeout:5000,
    play_parse:true,
    lazy:'',
    limit:6,
    double:false,
    推荐:'*',
    一级:'js:var d=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;var html=request(input);let list=pdfa(html,".mv_list&&li");list.forEach((it)=>{d.push({title:pdfh(it,".name&&Text"),desc:"🎤"+pdfh(it,".singer&&Text")+"｜"+pdfh(it,".time&&Text"),pic_url:pd(it,"img&&src"),url:pd(it,"a&&href"),})});setResult(d);',
    二级:'*',
    搜索:'.video_list&&li;a&&title;;.singer&&Text;a&&href;.t_03:eq(1)&&Text',
}


code:
var rule = {
    title:'酷狗MV',
    host:'https://www.kugou.com',
    homeUrl:'/mvweb/html/',
    url:'/mvweb/html/index_fyclass_fypage.html',
    searchUrl:'https://api.linhun.vip/api/kgmv?apiKey=e7e165ab27316db14467c07e00f3820d&name=**&n=',
    searchable:2,
    quickSearch:0,
    class_parse:'#radioList&ⅆa&&Text;a&&href;.*/index_(\\d+)_1.html',
    headers:{
        'User-Agent':'PC_UA'
    },
    timeout:5000,
    play_parse:true,
    lazy:'js:if(/mp4/.test(input)){input}else{var mv_name=request(input).match(/mv_name = "(.*?)"/)[1];input=JSON.parse(request("https://api.linhun.vip/api/kgmv?apiKey=e7e165ab27316db14467c07e00f3820d&name="+mv_name+"&n=1")).video}',
    limit:6,
    推荐:'*',
    一级:'.mvlist li;a&&title;img&&_src;;a&&href',
    二级:'*',
    搜索:'js:let d=[];let html=request(input);let list=JSON.parse(html).sun;for(let j=1;j<=list;j++){let t=JSON.parse(request(MY_URL+j));d.push({title:t.name,desc:t.author,img:t.img,url:t.video})}setResult(d)',
}


code:
var rule = {
    title:'音悦网',
    host:'https://data.yinyuetai.com',
    homeUrl:'/video/getTypeVideoList?videoType=1&pageNum=1&pageSize=20',//网站的首页链接,可以是完整路径或者相对路径,用于分类获取和推荐获取 fyclass是分类标签 fypage是页数
    url:'/video/getTypeVideoList?videoType=fyclass&pageNum=fypage&pageSize=20',
    // detailUrl:'https://data.yinyuetai.com/video/getVideoInfo?id=fyid',
    searchUrl:'',//搜索链接 可以是完整路径或者相对路径,用于分类获取和推荐获取 **代表搜索词 fypage代表页数
    searchable:0,//是否启用全局搜索,
    quickSearch:0,//是否启用快速搜索,
    headers:{//网站的请求头,完整支持所有的,常带ua和cookies
        'User-Agent':'MOBILE_UA',
    },
    class_name:'内地&香港&台湾&日韩欧美&音悦V榜及自制',
    class_url:'1&2&3&4&5',
    play_parse:true,
    lazy:'',
    limit:6,
    推荐:'*',
    一级:'js:let d=[];let data=JSON.parse(request(input)).list;data.forEach(function(it){let purl=JSON.parse(request("https://data.yinyuetai.com/video/getVideoInfo?id="+it.id)).videoUrl;d.push({title:it.videoName,img:it.videoImg,url:purl,desc:it.artistName,})});setResult(d);',
    二级:'*',
    搜索:'',
}


code:
var rule={
    title:'麦豆',
    host:'https://www.mdoutv.cc',
    // homeUrl:'/',
    url:'/vodshow/fyclass--------fypage---.html',
    //searchUrl:'/search/**/',
    searchable:2,//是否启用全局搜索,
    quickSearch:0,//是否启用快速搜索,
    filterable:0,//是否启用分类筛选,
    headers:{//网站的请求头,完整支持所有的,常带ua和cookies
        'User-Agent':'MOBILE_UA',
        // "Cookie": "searchneed=ok"
    },
    class_parse:'.row&&ul&&li;a&&Text;a&&href;.*/(.*?).html',
    play_parse:true,
    lazy:'',
    limit:6,
    推荐:'.myui-vodlist&&li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
    // double:true, // 推荐内容是否双层定位
    一级:'.myui-vodlist&&li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
    二级:{"title":"h1&&Text;.module-info-tag&&Text","img":".lazyload&&data-original","desc":".data:eq(1)&&Text;.data:eq(2)&&Text;.data:eq(3)&&Text;.data:eq(4)&&Text;.data:eq(5)&&Text","content":".sketch&&Text","tabs":".nav&&li","lists":".myui-content__list:eq(#id) li"},
    搜索:'',
}


code:
var rule = {
    title:'麦豆com',
    host:'https://www.mdoutv.net',
    url:'/movie_bt_series/fyclass/page/fypage',
    searchUrl:'/search/**/page/fypage',
    searchable:2,
    quickSearch:0,
    filterable:0,
    headers:{'User-Agent':'MOBILE_UA',},
    class_name:'国产&港台&欧美&韩剧&日剧&泰剧&剧集&电影&动漫&综艺',
class_url:'guocanju&gangtai&en&hanju&riju&taiju&tv&movie&ac&zongyi',
	cate_exclude:'留言|幸运码|更多播放线路|蚂蚁导航|迷历史',
    推荐:'.newindex&&ul&&li;img&&alt;img&&data-original;.jidi&&Text;a&&href',
    一级:'.mrb&&ul&&li;img&&alt;img&&data-original;.jidi&&Text;a&&href',
    二级:{"title":"h1&&Text;.moviedteail_list&&li:eq(2)&&Text;","img":".dyxingq&&img&&src","desc":".moviedteail_list&&li:eq(3)&&Text;.moviedteail_list&&li:eq(4)&&Text","content":".yp_context&&Text","tabs":".fr&&a","lists":".paly_list_btn:eq(#id) a"},
    搜索:'.search_list&&ul&&li;h3&&Text;img&&data-original;.hdinfo&&span&&Text;a&&href',
}


code:
# A Bad Script For a Bad Disto
was only made becuse debian has been ported to more deives than any outer distro
despite being total garbage and was a huge chore to get setup
as debian fightes you all the way to making it a usable distro


code:
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.

font pango:monospace 6

titlebar_padding 1

### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term foot
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.
set $menu tofi-drun | xargs swaymsg exec --

include /etc/sway/config-vars.d/*

### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
#output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
#
# Example configuration:
#
#   output HDMI-A-1 resolution 1920x1080 position 1920,0
#
# You can get the names of your outputs by running: swaymsg -t get_outputs

### Idle configuration
#
# Example configuration:
#
# exec swayidle -w \
#          timeout 300 'swaylock -f -c 000000' \
#          timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
#          before-sleep 'swaylock -f -c 000000'
#
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep.

### Input configuration
#
# Example configuration:
#
#   input "2:14:SynPS/2_Synaptics_TouchPad" {
#       dwt enabled
#       tap enabled
#       natural_scroll enabled
#       middle_emulation enabled
#   }
#
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.

### Key bindings
#
# Basics:
#
    # Start a terminal
    bindsym $mod+Return exec $term

    # Kill focused window
    bindsym $mod+Shift+q kill

    # Start your launcher
    bindsym $mod+d exec $menu

    # Drag floating windows by holding down $mod and left mouse button.
    # Resize them with right mouse button + $mod.
    # Despite the name, also works for non-floating windows.
    # Change normal to inverse to use left mouse button for resizing and right
    # mouse button for dragging.
    floating_modifier $mod normal

    # Reload the configuration file
    bindsym $mod+Shift+c reload

    # Exit sway (logs you out of your Wayland session)
    bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
#
# Moving around:
#
    # Move your focus around
    bindsym $mod+$left focus left
    bindsym $mod+$down focus down
    bindsym $mod+$up focus up
    bindsym $mod+$right focus right
    # Or use $mod+[up|down|left|right]
    bindsym $mod+Left focus left
    bindsym $mod+Down focus down
    bindsym $mod+Up focus up
    bindsym $mod+Right focus right

    # Move the focused window with the same, but add Shift
    bindsym $mod+Shift+$left move left
    bindsym $mod+Shift+$down move down
    bindsym $mod+Shift+$up move up
    bindsym $mod+Shift+$right move right
    # Ditto, with arrow keys
    bindsym $mod+Shift+Left move left
    bindsym $mod+Shift+Down move down
    bindsym $mod+Shift+Up move up
    bindsym $mod+Shift+Right move right
#
# Workspaces:
#
    # Switch to workspace
    bindsym $mod+1 workspace number 1
    bindsym $mod+2 workspace number 2
    bindsym $mod+3 workspace number 3
    bindsym $mod+4 workspace number 4
    bindsym $mod+5 workspace number 5
    bindsym $mod+6 workspace number 6
    bindsym $mod+7 workspace number 7
    bindsym $mod+8 workspace number 8
    bindsym $mod+9 workspace number 9
    bindsym $mod+0 workspace number 10
    # Move focused container to workspace
    bindsym $mod+Shift+1 move container to workspace number 1
    bindsym $mod+Shift+2 move container to workspace number 2
    bindsym $mod+Shift+3 move container to workspace number 3
    bindsym $mod+Shift+4 move container to workspace number 4
    bindsym $mod+Shift+5 move container to workspace number 5
    bindsym $mod+Shift+6 move container to workspace number 6
    bindsym $mod+Shift+7 move container to workspace number 7
    bindsym $mod+Shift+8 move container to workspace number 8
    bindsym $mod+Shift+9 move container to workspace number 9
    bindsym $mod+Shift+0 move container to workspace number 10
    # Note: workspaces can have any name you want, not just numbers.
    # We just use 1-10 as the default.
#
# Layout stuff:
#
    # You can "split" the current object of your focus with
    # $mod+b or $mod+v, for horizontal and vertical splits
    # respectively.
    bindsym $mod+b splith
    bindsym $mod+v splitv

    # Switch the current container between different layout styles
    bindsym $mod+s layout stacking
    bindsym $mod+w layout tabbed
    bindsym $mod+e layout toggle split

    # Make the current focus fullscreen
    bindsym $mod+f fullscreen

    # Toggle the current focus between tiling and floating mode
    bindsym $mod+Shift+space floating toggle

    # Swap focus between the tiling area and the floating area
    bindsym $mod+space focus mode_toggle

    # Move focus to the parent container
    bindsym $mod+a focus parent
#
# Scratchpad:
#
    # Sway has a "scratchpad", which is a bag of holding for windows.
    # You can send windows there and get them back later.

    # Move the currently focused window to the scratchpad
    bindsym $mod+Shift+minus move scratchpad

    # Show the next scratchpad window or hide the focused scratchpad window.
    # If there are multiple scratchpad windows, this command cycles through them.
    bindsym $mod+minus scratchpad show
#
# Resizing containers:
#
mode "resize" {
    # left will shrink the containers width
    # right will grow the containers width
    # up will shrink the containers height
    # down will grow the containers height
    bindsym $left resize shrink width 10px
    bindsym $down resize grow height 10px
    bindsym $up resize shrink height 10px
    bindsym $right resize grow width 10px

    # Ditto, with arrow keys
    bindsym Left resize shrink width 10px
    bindsym Down resize grow height 10px
    bindsym Up resize shrink height 10px
    bindsym Right resize grow width 10px

    # Return to default mode
    bindsym Return mode "default"
    bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"

#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar {
    position bottom

    # When the status_command prints a new line to stdout, swaybar updates.
    # The default just shows the current date and time.
    status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done

    colors {
        statusline #ffffff
        background #323232
        inactive_workspace #32323200 #32323200 #5c5c5c
    }
}

include /etc/sway/config.d/*

path: configs/config


code:
# Typical laptop setup, with wifi, brightness, battery etc, for
# i3/Sway.

# For X11/i3, you'll want to replace calls to swaymsg with i3-msg, and
# the sway-xkb module with the xkb module.

# fonts we'll be re-using here and there
awesome: &awesome Font Awesome 6 Free:style=solid:pixelsize=14
awesome_brands: &awesome_brands Font Awesome 6 Brands:pixelsize=16

std_underline: &std_underline {underline: { size: 2, color: ff0000ff}}

# This is THE bar configuration
bar:
  height: 16
  location: bottom
  spacing: 5
  margin: 7

  # Default font
  font: Adobe Helvetica:pixelsize=12

  foreground: ffffffff
  background: 111111cc

  left:
    - river:
        title: {string: { text: "{seat} - {title} ({layout}/{mode})" }}
        content:
          map:
            conditions:
              ~occupied: {empty: {}}
              occupied:
                string:
                  margin: 5
                  text: "{id}: {state}"

  right:
    - removables:
        anchors:
          drive: &drive { text: , font: *awesome}
          optical: &optical {text: , font: *awesome}
        spacing: 5
        content:
          map:
            conditions:
              ~mounted:
                map:
                  on-click: udisksctl mount -b {device}
                  conditions:
                    ~optical: [{string: *drive}, {string: {text: "{label}"}}]
                    optical: [{string: *optical}, {string: {text: "{label}"}}]
              mounted:
                map:
                  on-click: udisksctl unmount -b {device}
                  conditions:
                    ~optical:
                      - string: {<<: *drive, deco: *std_underline}
                      - string: {text: "{label}"}
                    optical:
                      - string: {<<: *optical, deco: *std_underline}
                      - string: {text: "{label}"}
    - network:
        name: enp1s0
        content:
          map:
            conditions:
              ~carrier: {empty: {}}
              carrier:
                map:
                  default: {string: {text: , font: *awesome, foreground: ffffff66}}
                  conditions:
                    state == up && ipv4 != "": {string: {text: , font: *awesome}}
    - network:
        name: wlan0
        poll-interval: 1000
        content:
          map:
            default: {string: {text: , font: *awesome, foreground: ffffff66}}
            conditions:
              state == down: {string: {text: , font: *awesome, foreground: ff0000ff}}
              state == up:
                map:
                  default:
                    - string: {text: , font: *awesome}
                    - string: {text: "{ssid} {dl-speed:mb}/{ul-speed:mb} Mb/s"}

                  conditions:
                    ipv4 == "":
                      - string: {text: , font: *awesome, foreground: ffffff66}
                      - string: {text: "{ssid} {dl-speed:mb}/{ul-speed:mb} Mb/s", foreground: ffffff66}
    - alsa:
        card: hw:PCH
        mixer: Master
        content:
          map:
            conditions:
              ~online: {string: {text: , font: *awesome, foreground: ff0000ff}}
              online:
                map:
                  on-click: /bin/sh -c "amixer -q sset Speaker unmute && amixer -q sset Headphone unmute && amixer -q sset Master toggle"
                  conditions:
                    muted: {string: {text: , font: *awesome, foreground: ffffff66}}
                    ~muted:
                      ramp:
                        tag: percent
                        items:
                          - string: {text: , font: *awesome}
                          - string: {text: , font: *awesome}
                          - string: {text: , font: *awesome}
    - backlight:
        name: intel_backlight
        content: [ string: {text: , font: *awesome}, string: {text: "{percent}%"}]
    - battery:
        name: BAT0
        poll-interval: 30000
        anchors:
          discharging: &discharging
            list:
              items:
                - ramp:
                    tag: capacity
                    items:
                      - string: {text: , foreground: ff0000ff, font: *awesome}
                      - string: {text: , foreground: ffa600ff, font: *awesome}
                      - string: {text: , font: *awesome}
                      - string: {text: , font: *awesome}
                      - string: {text: , font: *awesome}
                      - string: {text: , font: *awesome}
                      - string: {text: , font: *awesome}
                      - string: {text: , font: *awesome}
                      - string: {text: , font: *awesome}
                      - string: {text: , foreground: 00ff00ff, font: *awesome}
                - string: {text: "{capacity}% {estimate}"}
        content:
          map:
            conditions:
              state == unknown:
                <<: *discharging
              state == discharging:
                <<: *discharging
              state == charging:
                - string: {text: , foreground: 00ff00ff, font: *awesome}
                - string: {text: "{capacity}% {estimate}"}
              state == full:
                - string: {text: , foreground: 00ff00ff, font: *awesome}
                - string: {text: "{capacity}% full"}
              state == "not charging":
                - ramp:
                    tag: capacity
                    items:
                      - string: {text:  , foreground: ff0000ff, font: *awesome}
                      - string: {text:  , foreground: ffa600ff, font: *awesome}
                      - string: {text:  , foreground: 00ff00ff, font: *awesome}
                      - string: {text:  , foreground: 00ff00ff, font: *awesome}
                      - string: {text:  , foreground: 00ff00ff, font: *awesome}
                      - string: {text:  , foreground: 00ff00ff, font: *awesome}
                      - string: {text:  , foreground: 00ff00ff, font: *awesome}
                      - string: {text:  , foreground: 00ff00ff, font: *awesome}
                      - string: {text:  , foreground: 00ff00ff, font: *awesome}
                      - string: {text:  , foreground: 00ff00ff, font: *awesome}
                - string: {text: "{capacity}%"}
    - clock:
        time-format: "%H:%M %Z"
        content:
          - string: {text: , font: *awesome}
          - string: {text: "{date}", right-margin: 5}
          - string: {text: , font: *awesome}
          - string: {text: "{time}"}
    - label:
        content:
          string:
            on-click: systemctl poweroff
            text: 
            font: *awesome


code:
# -*- conf -*-

# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
# login-shell=no

# app-id=foot
# title=foot
# locked-title=no

font=monospace:size=9
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# line-height=<font metrics>
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# underline-offset=<font metrics>
# box-drawings-uses-font-glyphs=no
# dpi-aware=auto

# initial-window-size-pixels=700x500  # Or,
# initial-window-size-chars=<COLSxROWS>
# initial-window-mode=windowed
# pad=2x2                             # optionally append 'center'
# resize-delay-ms=100

# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}

# bold-text-in-bright=no
# word-delimiters=,│`|:"'()[]{}<>
# selection-target=primary
# workers=<number of logical CPUs>

[environment]
# name=value

[bell]
# urgent=no
# notify=no
# command=
# command-focused=no

[scrollback]
# lines=1000
# multiplier=3.0
# indicator-position=relative
# indicator-format=

[url]
# launch=xdg-open ${url}
# label-letters=sadfjklewcmpgh
# osc8-underline=url-mode
# protocols=http, https, ftp, ftps, file, gemini, gopher
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]

[cursor]
# style=block
# color=<inverse foreground/background>
# blink=no
# beam-thickness=1.5
# underline-thickness=<font underline thickness>

[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes

[colors]
# alpha=1.0
# foreground=dcdccc
# background=111111

## Normal/regular colors (color palette 0-7)
# regular0=222222  # black
# regular1=cc9393  # red
# regular2=7f9f7f  # green
# regular3=d0bf8f  # yellow
# regular4=6ca0a3  # blue
# regular5=dc8cc3  # magenta
# regular6=93e0e3  # cyan
# regular7=dcdccc  # white

## Bright colors (color palette 8-15)
# bright0=666666   # bright black
# bright1=dca3a3   # bright red
# bright2=bfebbf   # bright green
# bright3=f0dfaf   # bright yellow
# bright4=8cd0d3   # bright blue
# bright5=fcace3   # bright magenta
# bright6=b3ffff   # bright cyan
# bright7=ffffff   # bright white

## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>

## The remaining 256-color palette
# 16 = <256-color palette #16>
# ...
# 255 = <256-color palette #255>

## Misc colors
# selection-foreground=<inverse foreground/background>
# selection-background=<inverse foreground/background>
# jump-labels=<regular0> <regular3>          # black-on-yellow
# scrollback-indicator=<regular0> <bright4>  # black-on-bright-blue
# search-box-no-match=<regular0> <regular1>  # black-on-red
# search-box-match=<regular0> <regular3>     # black-on-yellow
# urls=<regular3>

[csd]
# preferred=server
# size=26
# font=<primary font>
# color=<foreground color>
# hide-when-typing=no
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>

[key-bindings]
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
# search-start=Control+Shift+r
# font-increase=Control+plus Control+equal Control+KP_Add
# font-decrease=Control+minus Control+KP_Subtract
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
# fullscreen=none
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
# show-urls-launch=Control+Shift+u
# show-urls-copy=none
# show-urls-persistent=none
# prompt-prev=Control+Shift+z
# prompt-next=Control+Shift+x
# unicode-input=none
# noop=none

[search-bindings]
# cancel=Control+g Control+c Escape
# commit=Return
# find-prev=Control+r
# find-next=Control+s
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-to-word-boundary=Control+w
# extend-to-next-whitespace=Control+Shift+w
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
# unicode-input=none

[url-bindings]
# cancel=Control+g Control+c Control+d Escape
# toggle-url-visible=t

[text-bindings]
# \x03=Mod4+c  # Map Super+c -> Ctrl+c

[mouse-bindings]
# selection-override-modifiers=Shift
# primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-row=BTN_LEFT-3

# vim: ft=dosini


code:
# output=<not set>
  font=monospace:size=12
  dpi-aware=auto
# prompt=>
  icon-theme=Papirus-Dark
  icons-enabled=yes
# fields=filename,name,generic
# password-character=*
  filter-desktop=no
# fuzzy=yes
# show-actions=no
terminal=foot
# launch-prefix=<not set>

 lines=24
  width=40
# tabs=8
# horizontal-pad=40
# vertical-pad=8
# inner-pad=0

# image-size-ratio=0.5

# line-height=<use font metrics>
# letter-spacing=0

# layer = top
# exit-on-keyboard-focus-loss = yes

[colors]
  background=00090fff
  text=ffffffff
# match=cb4b16ff
  selection=eee8d5ff
  selection-text=000000ff
# border=002b36ff

[border]
# width=1
# radius=10

[dmenu]
# mode=text  # text|index
# exit-immediately-if-empty=no

[key-bindings]
# cancel=Escape Control+g
# execute=Return KP_Enter Control+y
# execute-or-next=Tab
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete KP_Delete Control+d
# delete-next-word=Mod1+d Control+Delete Control+KP_Delete
# delete-line=Control+k
# prev=Up Control+p
# prev-with-wrap=ISO_Left_Tab
# prev-page=Page_Up KP_Page_Up
# next=Down Control+n
# next-with-wrap=none
# next-page=Page_Down KP_Page_Down

# custom-N: *dmenu mode only*. Like execute, but with a non-zero
# exit-code; custom-1 exits with code 10, custom-2 with 11, custom-3
# with 12, and so on.

# custom-1=Mod1+1
# custom-2=Mod1+2
# custom-3=Mod1+3
# custom-4=Mod1+4
# custom-5=Mod1+5
# custom-6=Mod1+6
# custom-7=Mod1+7
# custom-8=Mod1+8
# custom-9=Mod1+9
# custom-10=Mod1+0
# custom-11=Mod1+exclam
# custom-12=Mod1+at
# custom-13=Mod1+numbersign
# custom-14=Mod1+dollar
# custom-15=Mod1+percent
# custom-16=Mod1+dead_circumflex
# custom-17=Mod1+ampersand
# custom-18=Mod1+asterix
# custom-19=Mod1+parentleft


code:
[Behavior]
AutoSelectionDelay=600
BookmarkOpenMethod=current_tab
ConfirmDelete=true
ConfirmTrash=false
CtrlRightClick=false
NoUsbTrash=true
QuickExec=false
RecentFilesNumber=0
SelectNewFiles=false
SingleClick=false
SingleWindowMode=false
UseTrash=true

[Desktop]
AllSticky=false
BgColor=#000000
DesktopCellMargins=@Size(3 1)
DesktopIconSize=48
DesktopShortcuts=@Invalid()
FgColor=#ffffff
Font="Noto Sans,12,-1,5,50,0,0,0,0,0"
HideItems=false
LastSlide=
OpenWithDefaultFileManager=false
PerScreenWallpaper=false
ShadowColor=#000000
ShowHidden=false
SlideShowInterval=0
SortColumn=name
SortFolderFirst=true
SortHiddenLast=false
SortOrder=ascending
TransformWallpaper=false
Wallpaper=
WallpaperDialogSize=@Size(700 500)
WallpaperDialogSplitterPos=200
WallpaperDirectory=
WallpaperMode=none
WallpaperRandomize=false
WorkAreaMargins=12, 12, 12, 12

[FolderView]
BackupAsHidden=false
BigIconSize=48
CustomColumnWidths=@Invalid()
FolderViewCellMargins=@Size(3 3)
HiddenColumns=@Invalid()
Mode=icon
NoItemTooltip=false
ScrollPerPixel=true
ShadowHidden=true
ShowFilter=true
ShowFullNames=true
ShowHidden=true
SidePaneIconSize=24
SmallIconSize=24
SortCaseSensitive=false
SortColumn=name
SortFolderFirst=true
SortHiddenLast=false
SortOrder=ascending
ThumbnailIconSize=128

[Places]
HiddenPlaces=@Invalid()
Videos=@@Videos()

[Search]
ContentPatterns=@Invalid()
MaxSearchHistory=0
NamePatterns=@Invalid()
searchContentCaseInsensitive=false
searchContentRegexp=true
searchNameCaseInsensitive=false
searchNameRegexp=true
searchRecursive=false
searchhHidden=false

[System]
Archiver=lxqt-archiver
FallbackIconThemeName=oxygen
OnlyUserTemplates=false
SIUnit=false
SuCommand=lxqt-sudo %s
TemplateRunApp=false
TemplateTypeOnce=false
Terminal=foot

[Thumbnail]
MaxExternalThumbnailFileSize=-1
MaxThumbnailFileSize=4096
ShowThumbnails=true
ThumbnailLocalFilesOnly=true

[Volume]
AutoRun=true
CloseOnUnmount=true
MountOnStartup=true
MountRemovable=true

[Window]
AlwaysShowTabs=true
FixedHeight=480
FixedWidth=640
LastWindowHeight=1060
LastWindowMaximized=false
LastWindowWidth=764
PathBarButtons=true
RememberWindowSize=true
ReopenLastTabs=true
ShowMenuBar=true
ShowTabClose=true
SidePaneMode=places
SidePaneVisible=true
SplitView=false
SplitViewTabsNum=0
SplitterPos=151
SwitchToNewTab=false
TabPaths=/home/drago/.config/pcmanfm-qt/default, /home/drago/Dev/MinArch


code:
# For complete description of supported configuration options, refer to
# 'man 5 iwd.config'.

[General]
# iwd is capable of performing network configuration on its own, including
# DHCPv4 based address configuration.  By default this behavior is
# disabled, and an external service such as NetworkManager, systemd-network
# or dhcpclient is required.  Uncomment the following line if you want iwd
# to manage network interface configuration.
#
EnableNetworkConfiguration=true
#
# iwd can randomize your WiFi card's MAC address for additional privacy.  By
# default, this behavior is disabled and the MAC address assigned by the
# kernel driver is used.  The address will be stable when connecting
# to a saved network profile, so as to not interfere with any MAC filtering
# rules that exist on the network.
# If a randomized MAC address is desired, uncomment the setting line below:
#
#AddressRandomization=network
#
# Options below control the roaming thresholds on 2.4 & 5G bands.
# Normally the default values are a good compromise that avoids excessive
# scanning while maintaining good link quality.
#
#RoamThreshold=-70
#RoamThreshold5G=-76
#
[Network]
# If EnableNetworkConfiguration=true is set, iwd forwards DNS information to
# the system resolving service.  The currently supported services are:
# - systemd-resolved ["systemd"]
# - openresolv / resolvconf ["resolvconf"]
#
# If not set, the value "systemd" is used by default.  Uncomment the value
# below if you are using openresolv:
#
#NameResolvingService=resolvconf
#
# iwd's support for IPv6 is still experimental and is disabled by default.
# If you want to try it anyway, uncomment the setting below.  Note that
# configuration via SLAAC is currently not supported (DHCPv6 only).
#
#EnableIPv6=true


code:
[Appearance]
color_scheme_path=/usr/share/qt5ct/colors/airy.conf
custom_palette=false
icon_theme=Papirus-Dark
standard_dialogs=default
style=kvantum-dark

[Fonts]
fixed="FreeSans,12,-1,5,50,0,0,0,0,0,Regular"
general="FreeSans,12,-1,5,50,0,0,0,0,0,Regular"

[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3

[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4{\0\0\x4#\0\0\0\0\0\0\0\0\0\0\x4{\0\0\x4#\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x4{\0\0\x4#)

[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()


code:
[Appearance]
color_scheme_path=/usr/share/qt6ct/colors/airy.conf
custom_palette=false
icon_theme=Papirus-Dark
standard_dialogs=default
style=kvantum-dark

[Fonts]
fixed="Noto Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
general="Noto Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"

[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3

[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4{\0\0\x4#\0\0\0\0\0\0\0\0\0\0\x4{\0\0\x4#\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x4{\0\0\x4#)

[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()


code:
# Default config for imv

[options]

# Suppress built-in key bindings, and specify them explicitly in this
# config file.
suppress_default_binds = true
upscaling_method = nearest_neighbour

[aliases]
# Define aliases here. Any arguments passed to an alias are appended to the
# command.
# alias = command to run

[binds]
# Define some key bindings
q = quit
y = exec echo working!

# Image navigation
<Left> = prev
<bracketleft> = prev
<Right> = next
<bracketright> = next
gg = goto 1
<Shift+G> = goto -1

# Panning
j = pan 0 -50
k = pan 0 50
h = pan 50 0
l = pan -50 0

# Zooming
<Up> = zoom 1
<Shift+plus> = zoom 1
i = zoom 1
<Down> = zoom -1
<minus> = zoom -1
o = zoom -1

# Rotate Clockwise by 90 degrees
<Ctrl+r> = rotate by 90

# Other commands
x = close
f = fullscreen
d = overlay
p = exec echo $imv_current_file
c = center
s = scaling next
<Shift+S> = upscaling next
a = zoom actual
r = reset

# Gif playback
<period> = next_frame
<space> = toggle_playing

# Slideshow control
t = slideshow +1
<Shift+T> = slideshow -1


code:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

exec sway

path: install/configs/profile


code:
permit setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} username
permit setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} root


code:
#bin/bash
if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root"
   exit 1
fi

cp doas.conf /etc/
cp mimeapps.list /etc/xdg/
cp ../configs/profile /etc/

apt update
apt install foot falkon htop doas iwd git sway imv ffmpeg mpv pcmanfm-qt lxqt-archiver zathura featherpad tofi

cp ../configs/imv_config /etc/

print "replace username with the name of your user"
nano /etc/doas.conf


code:
[Default Applications]
image/jpeg=imv.desktop
image/png=imv.desktop
image/jpg=imv.desktop
image/bmp=imv.desktop
image/gif=imv.desktop
image/pjpeg=imv.desktop
image/tiff=imv.desktop
image/x-bmp=imv.desktop
image/x-pcx=imv.desktop
image/x-png=imv.desktop
image/x-xbitmap=imv.desktop
image/heif=imv.desktop
image/x-tga=imv.desktop
audio/aac=mpv.desktop
audio/x-aac=mpv.desktop
audio/vnd.dolby.heaac.1=mpv.desktop
audio/vnd.dolby.heaac.2=mpv.desktop
audio/aiff=mpv.desktop
audio/x-aiff=mpv.desktop
audio/m4a=mpv.desktop
audio/x-m4a=mpv.desktop
application/x-extension-m4a=mpv.desktop
audio/mp1=mpv.desktop
audio/x-mp1=mpv.desktop
audio/mp2=mpv.desktop
audio/x-mp2=mpv.desktop
audio/mp3=mpv.desktop
audio/x-mp3=mpv.desktop
audio/mpeg=mpv.desktop
audio/mpeg2=mpv.desktop
audio/mpeg3=mpv.desktop
audio/mpegurl=mpv.desktop
audio/x-mpegurl=mpv.desktop
audio/mpg=mpv.desktop
audio/x-mpg=mpv.desktop
audio/rn-mpeg=mpv.desktop
audio/musepack=mpv.desktop
audio/x-musepack=mpv.desktop
audio/ogg=mpv.desktop
audio/scpls=mpv.desktop
audio/x-scpls=mpv.desktop
audio/vnd.rn-realaudio=mpv.desktop
audio/wav=mpv.desktop
audio/x-pn-wav=mpv.desktop
audio/x-pn-windows-pcm=mpv.desktop
audio/x-realaudio=mpv.desktop
audio/x-pn-realaudio=mpv.desktop
audio/x-ms-wma=mpv.desktop
audio/x-pls=mpv.desktop
audio/x-wav=mpv.desktop
video/mpeg=mpv.desktop
video/x-mpeg2=mpv.desktop
video/x-mpeg3=mpv.desktop
video/mp4v-es=mpv.desktop
video/x-m4v=mpv.desktop
video/mp4=mpv.desktop
application/x-extension-mp4=mpv.desktop
video/divx=mpv.desktop
video/vnd.divx=mpv.desktop
video/msvideo=mpv.desktop
video/x-msvideo=mpv.desktop
video/ogg=mpv.desktop
video/quicktime=mpv.desktop
video/vnd.rn-realvideo=mpv.desktop
video/x-ms-afs=mpv.desktop
video/x-ms-asf=mpv.desktop
audio/x-ms-asf=mpv.desktop
application/vnd.ms-asf=mpv.desktop
video/x-ms-wmv=mpv.desktop
video/x-ms-wmx=mpv.desktop
video/x-ms-wvxvideo=mpv.desktop
video/x-avi=mpv.desktop
video/avi=mpv.desktop
video/x-flic=mpv.desktop
video/fli=mpv.desktop
video/x-flc=mpv.desktop
video/flv=mpv.desktop
video/x-flv=mpv.desktop
video/x-theora=mpv.desktop
video/x-theora+ogg=mpv.desktop
video/x-matroska=mpv.desktop
video/mkv=mpv.desktop
audio/x-matroska=mpv.desktop
application/x-matroska=mpv.desktop
video/webm=mpv.desktop
audio/webm=mpv.desktop
audio/vorbis=mpv.desktop
audio/x-vorbis=mpv.desktop
audio/x-vorbis+ogg=mpv.desktop
video/x-ogm=mpv.desktop
video/x-ogm+ogg=mpv.desktop
application/x-ogm=mpv.desktop
application/x-ogm-audio=mpv.desktop
application/x-ogm-video=mpv.desktop
application/x-shorten=mpv.desktop
audio/x-shorten=mpv.desktop
audio/x-ape=mpv.desktop
audio/x-wavpack=mpv.desktop
audio/x-tta=mpv.desktop
audio/AMR=mpv.desktop
audio/ac3=mpv.desktop
audio/eac3=mpv.desktop
audio/amr-wb=mpv.desktop
video/mp2t=mpv.desktop
audio/flac=mpv.desktop
audio/mp4=mpv.desktop
application/x-mpegurl=mpv.desktop
video/vnd.mpegurl=mpv.desktop
application/vnd.apple.mpegurl=mpv.desktop
audio/x-pn-au=mpv.desktop
video/3gp=mpv.desktop
video/3gpp=mpv.desktop
video/3gpp2=mpv.desktop
audio/3gpp=mpv.desktop
audio/3gpp2=mpv.desktop
video/dv=mpv.desktop
audio/dv=mpv.desktop
audio/opus=mpv.desktop
audio/vnd.dts=mpv.desktop
audio/vnd.dts.hd=mpv.desktop
audio/x-adpcm=mpv.desktop
application/x-cue=mpv.desktop
audio/m3u=mpv.desktop
text/plain=featherpad.desktop
application/x-zerosize=featherpad.desktop
application/pdf=org.pwmt.zathura.desktop


code:
permit setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} :wheel
permit setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} root


code:
#bin/bash
if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root"
   exit 1
fi

cp doas.conf /etc/

apt update
apt install lynx nnn htop doas iwd git tmux imv ffmpeg mpv aerc tofi zathura


code:
#bin/bash
if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root"
   exit 1
fi
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

cp doas.conf /etc/
cp main.con /etc/iwd
cp ../configs/profile /etc/

apt update
apt install foot lynx nnn htop tofi doas iwd git sway imv ffmpeg mpv

cp ../configs/imv_config /etc/

print "replace username with the name of your user"
nano /etc/doas.conf


code:
#!/bin/bash
mkdir ~/Apps
mkdir ~/Apps/Games
mkdir ~/Donwloads
mkdir ~/Videos
mkdir ~/Pictures
mkdir ~/Documents
mkdir ~/Box

mkdir ~/.config/

echo "1. Sway with GUI applications Choose This if you don't understand"
echo "2. Sway with TUI applications"
echo "3. Tmux in tty with TUI applications"

read -p "Enter your choice (1 2 or 3): " choice

if [ "$choice" = "1" ]; then
	mkdir ~/.config/sway
	mkdir ~/.config/foot
	mkdir ~/.config/qt5ct
	mkdir ~/.config/qt6ct
	mkdir ~/.config/kvantum
	mkdir ~/.config/pcmanfm-qt
	mkdir ~/.config/pcmanfm-qt/default
	cp configs/foot.ini ~/.config/foot
	cp configs/qt5ct.conf ~/.config/qt5ct
	cp configs/qt6ct.conf ~/.config/qt6ct
    cp configs/kvantum.kvconfig ~/.config/kvantum
    cp configs/gui/settings.conf ~/.config/pcmanfm-qt/default

elif [ "$choice" = "2" ]; then
	mkdir ~/.config/foot
	mkdir ~/.config/qt5ct
	mkdir ~/.config/qt6ct
	mkdir ~/.config/kvantum
	mkdir ~/.config/sway
	cp configs/foot.ini ~/.config/foot
	cp configs/config ~/.config/sway
	cp configs/qt5ct.conf ~/.config/qt5ct
	cp configs/qt6ct.conf ~/.config/qt6ct
	cp configs/kvantum.kvconfig ~/.config/kvantum

elif [ "$choice" = "3" ]; then
	echo "3"

else
    echo "You Must Choose Ether 1 2 or 3"

fi


code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

	<title>res0nat0r/gitosis @ GitHub</title>

gitosis
      by res0nat0r

      My copy of gitosis

Authors

Garry Dolley (gdolley@arpnetworks.com)

Tommi Virtanen (tv@eagain.net)

Contact

 (stefhen.hovland+github@gmail.com)

Download

      You can download this project in either
      zip or
      tar formats.

You can also clone the project with Git
      by running:

$ git clone git://github.com/res0nat0r/gitosis

      get the source code on GitHub : res0nat0r/gitosis

repo_name: snapshot/gitosis


code:
minetest mod Stairs
=========================

Featured stairs with transparent and glowing stairs, slopes, fuel feature, etc

Information
-----------

This mod is named `stairs` and its a featured replacement of default one;
this mod has been amended to add new features like transparent and glowing
stairs, slopes, recipes to return stairs / slopes back into blocks and also for
stairs to be used as fuel for furnaces, also alternative placement functions
that use on_rotate and sneak key.

![screenshot.png](screenshot.png)

Tech information
----------------

This mod replaces the default stairs mod and is fully api compatible.

#### Dependencies

* default

### Settings

'stairs.show_sides' True by default it uses separate side textures for
                    glass and obsidian glass stairs to look more solid.

License
-------

### Authors of source code

Originally by Kahrl <kahrl@gmx.net> (LGPLv2.1+) and
celeron55, Perttu Ahola <celeron55@gmail.com> (LGPLv2.1+)
Various Minetest developers and contributors (LGPLv2.1+)
http://www.gnu.org/licenses/lgpl-2.1.html

### License of media (textures and sounds)

Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
http://creativecommons.org/licenses/by-sa/3.0/

license: mit


code:
Stairs API
----------

The stairs API lets you register stairs and slabs and ensures that they are registered the same way as those delivered with Minetest Game, to keep them compatible with other mods.

`stairs.register_stair(subname, recipeitem, groups, images, description, sounds, worldaligntex)`

 * Registers a stair
 * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname"
 * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil`
 * `groups`: See [Known damage and digging time defining groups]
 * `images`: See [Tile definition]
 * `description`: Used for the description field in the stair's definition
 * `sounds`: See [#Default sounds]
 * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition]

`stairs.register_slab(subname, recipeitem, groups, images, description, sounds, worldaligntex)`

 * Registers a slab
 * `subname`: Basically the material name (e.g. cobble) used for the slab name. Nodename pattern: "stairs:slab_subname"
 * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble"
 * `groups`: See [Known damage and digging time defining groups]
 * `images`: See [Tile definition]
 * `description`: Used for the description field in the slab's definition
 * `sounds`: See [#Default sounds]
 * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition]

`stairs.register_stair_inner(subname, recipeitem, groups, images, description, sounds, worldaligntex)`

 * Registers an inner corner stair
 * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_inner_subname"
 * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil`
 * `groups`: See [Known damage and digging time defining groups]
 * `images`: See [Tile definition]
 * `description`: Used for the description field in the stair's definition with "Inner" prepended
 * `sounds`: See [#Default sounds]
 * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition]

`stairs.register_stair_outer(subname, recipeitem, groups, images, description, sounds, worldaligntex)`

 * Registers an outer corner stair
 * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_outer_subname"
 * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil`
 * `groups`: See [Known damage and digging time defining groups]
 * `images`: See [Tile definition]
 * `description`: Used for the description field in the stair's definition with "Outer" prepended
 * `sounds`: See [#Default sounds]
 * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition]

`stairs.register_slope(subname, recipeitem, groups, images, description, sounds, worldaligntex)`

 * Registers a slope
 * `subname`: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_outer_subname"
 * `recipeitem`: Item used in the craft recipe, e.g. "default:cobble", may be `nil`
 * `groups`: See [Known damage and digging time defining groups]
 * `images`: See [Tile definition]
 * `description`: Used for the description field in the stair's definition with "Outer" prepended
 * `sounds`: See [#Default sounds]
 * `worldaligntex`: A bool to set all textures world-aligned. Default false. See [Tile definition]

`stairs.register_slope_outer(subname, recipeitem, groups, images, description, sounds, worldaligntex)`

`stairs.register_slope_inner(subname, recipeitem, groups, images, description, sounds, worldaligntex)`

`stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds, worldaligntex)`

 * A wrapper for stairs.register_stair, stairs.register_slab, stairs.register_stair_inner, stairs.register_stair_outer
 * Uses almost the same arguments as stairs.register_stair
 * `desc_stair`: Description for stair nodes. For corner stairs 'Inner' or 'Outer' will be prefixed
 * `desc_slab`: Description for slab node

`stairs.register_all(subname, recipeitem, groups, images, description, sounds, worldaligntex)`

 * A wrapper for stairs.register_stair, stairs.register_slab, stairs.register_stair_inner, stairs.register_stair_outer, stairs.register_slope
 * Uses almost the same arguments as stairs.register_stair
 * `description`: Description for stair nodes. 'stair' 'slab' 'stair_inner' 'stair_outer' 'Slope' will be prefixed

Note: if sounds set to nil then node sounds will be used.  Texture alpha, sunglight propagates and light source will be taken from node for each stair registered.