Code Monkey home page Code Monkey logo

m3uparse's Introduction

Парсер плейлистов | Playlists Parser

Данная библиотека - это сканер открытых плейлистов для создания едной базы плейлистов. Он собирает все в одну кучу, фильтрует и сортирует.

Источники

Вы сами можете определить свой парсер.

Источники телепрограммы

Roadmap

  • Auto directory generator & downloader
  • Common Aggregation Interface
    • Autolink local parser channels with grouping
    • Filter available channels in target playlist
    • Default parsers
    • Link to EPG services
    • Parser return Object Interface instead of array
    • Categories
    • Extra Options (for apps):
      • Use origin stream
      • Image
      • Use or not
      • Blocked
      • WebView URL
  • Common EPG Aggregation Interface
  • Go3uparse

Installation PHP Packgist

composer require zikwall/m3uparse

Develop mode

{
    "minimum-stability": "dev",
    "repositories": [
      {
    	  "type": "git",
    	  "url": "https://github.com/zikwall/m3uparse.git",
      }
    ],
    "require": {
    	"zikwall/m3uparse": "dev-develop"
    }
}

How to use?

<?php

require_once './vendor/autoload.php';

use zikwall\m3uparse\Aggregation;

// u can use default playlist sources
use zikwall\m3uparse\parsers\{
    free\Free,
    freebesttv\FreeBestTv,
    vasiliy78L\Base
};

$agg = new Aggregation(new \zikwall\m3uparse\Configuration());

// порядок имеет значение!
// первые более приоритетнее чем последующие
print_r(
    $agg->merge(new Base(), new Free(), new FreeBestTv())
);

Configuration

По умолчанию плейлисты скачиваются и сканируются из директории: RootDirectory + UploadFolder + PlaylistsFolder.

Например:

  1. RootDirectory = /public
  2. UploadFolder = /uploads (default)
  3. PlaylistsFolder = /playlists (default)

Вывод: /public/uploads/playlists

Set root directory
<?php

// set current dir is a root
$agg = new Aggregation(new \zikwall\m3uparse\Configuration(__DIR__));

Add custom Parsers

Каждый парсер должен следовать интерфейсу IParse

<?php

interface IParse
{
    public function parse(Aggregation $aggregation);
    public function channels();
}

В методе IParse::parse() Вы можете реализовать любую логику парсинга, примеры можете посмотреть в парсерах по умолчанию. Но любой парсер должен возвращать структуру типа:

[
    ...
    [
       'name' => 'Channel Name',
       'url'  => 'Channel url to m3u',
       'from' => 'From playlist', // optional
       'ssl'  => $this->isSSL($url) ? 1 : 0
    ]
    ...
]

У парсера может быть файл со списком каналов, которые нужно инициализировать, реализует данный функционал метод IParse::channels(). Он должен возвращать массив, формата: Название канала -> Его ЕПГ идентификатор

[
  "Odessa Int2." => 7,
  "Синергия ТВ2" => 286
]

Данный список добавляется к каналу из общего списка, как возможное наименование канала.

m3uparse's People

Contributors

zikwall avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.