mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2024-12-24 05:08:20 +03:00
00d5242871
* [GithubTrendingBridge] Add support for spoken languages * Update GithubTrendingBridge.php
663 lines
28 KiB
PHP
663 lines
28 KiB
PHP
<?php
|
|
|
|
class GithubTrendingBridge extends BridgeAbstract
|
|
{
|
|
const MAINTAINER = 'liamka';
|
|
const NAME = 'Github Trending';
|
|
const URI = 'https://github.com/trending';
|
|
const URI_ITEM = 'https://github.com';
|
|
const CACHE_TIMEOUT = 43200; // 12hr
|
|
const DESCRIPTION = 'See what the GitHub community is most excited repos.';
|
|
const PARAMETERS = [
|
|
// If you are changing context and/or parameter names, change them also in getName().
|
|
'By language' => [
|
|
'language' => [
|
|
'name' => 'Select language',
|
|
'type' => 'list',
|
|
'values' => [
|
|
'All languages' => '',
|
|
'HTML' => 'html',
|
|
'PHP' => 'php',
|
|
'Python' => 'python',
|
|
'Shell' => 'shell',
|
|
'Unknown languages' => 'unknown',
|
|
'1C Enterprise' => '1c-enterprise',
|
|
'4D' => '4d',
|
|
'ABAP' => 'abap',
|
|
'ABNF' => 'abnf',
|
|
'ActionScript' => 'actionscript',
|
|
'Ada' => 'ada',
|
|
'Adobe Font Metrics' => 'adobe-font-metrics',
|
|
'Agda' => 'agda',
|
|
'AGS Script' => 'ags-script',
|
|
'Alloy' => 'alloy',
|
|
'Alpine Abuild' => 'alpine-abuild',
|
|
'Altium Designer' => 'altium-designer',
|
|
'AMPL' => 'ampl',
|
|
'AngelScript' => 'angelscript',
|
|
'Ant Build System' => 'ant-build-system',
|
|
'ANTLR' => 'antlr',
|
|
'ApacheConf' => 'apacheconf',
|
|
'Apex' => 'apex',
|
|
'API Blueprint' => 'api-blueprint',
|
|
'APL' => 'apl',
|
|
'Apollo Guidance Computer' => 'apollo-guidance-computer',
|
|
'AppleScript' => 'applescript',
|
|
'Arc' => 'arc',
|
|
'AsciiDoc' => 'asciidoc',
|
|
'ASN.1' => 'asn.1',
|
|
'ASP' => 'asp',
|
|
'AspectJ' => 'aspectj',
|
|
'Assembly' => 'assembly',
|
|
'Asymptote' => 'asymptote',
|
|
'ATS' => 'ats',
|
|
'Augeas' => 'augeas',
|
|
'AutoHotkey' => 'autohotkey',
|
|
'AutoIt' => 'autoit',
|
|
'Awk' => 'awk',
|
|
'Ballerina' => 'ballerina',
|
|
'Batchfile' => 'batchfile',
|
|
'Befunge' => 'befunge',
|
|
'BibTeX' => 'bibtex',
|
|
'Bison' => 'bison',
|
|
'BitBake' => 'bitbake',
|
|
'Blade' => 'blade',
|
|
'BlitzBasic' => 'blitzbasic',
|
|
'BlitzMax' => 'blitzmax',
|
|
'Bluespec' => 'bluespec',
|
|
'Boo' => 'boo',
|
|
'Brainfuck' => 'brainfuck',
|
|
'Brightscript' => 'brightscript',
|
|
'Zeek' => 'zeek',
|
|
'C' => 'c',
|
|
'C#' => 'c%23', // already URL encoded
|
|
'C++' => 'c++',
|
|
'C-ObjDump' => 'c-objdump',
|
|
'C2hs Haskell' => 'c2hs-haskell',
|
|
'Cabal Config' => 'cabal-config',
|
|
'Cap\'n Proto' => 'cap\'n-proto',
|
|
'CartoCSS' => 'cartocss',
|
|
'Ceylon' => 'ceylon',
|
|
'Chapel' => 'chapel',
|
|
'Charity' => 'charity',
|
|
'ChucK' => 'chuck',
|
|
'Cirru' => 'cirru',
|
|
'Clarion' => 'clarion',
|
|
'Clean' => 'clean',
|
|
'Click' => 'click',
|
|
'CLIPS' => 'clips',
|
|
'Clojure' => 'clojure',
|
|
'Closure Templates' => 'closure-templates',
|
|
'Cloud Firestore Security Rules' => 'cloud-firestore-security-rules',
|
|
'CMake' => 'cmake',
|
|
'COBOL' => 'cobol',
|
|
'CodeQL' => 'codeql',
|
|
'CoffeeScript' => 'coffeescript',
|
|
'ColdFusion' => 'coldfusion',
|
|
'ColdFusion CFC' => 'coldfusion-cfc',
|
|
'COLLADA' => 'collada',
|
|
'Common Lisp' => 'common-lisp',
|
|
'Common Workflow Language' => 'common-workflow-language',
|
|
'Component Pascal' => 'component-pascal',
|
|
'CoNLL-U' => 'conll-u',
|
|
'Cool' => 'cool',
|
|
'Coq' => 'coq',
|
|
'Cpp-ObjDump' => 'cpp-objdump',
|
|
'Creole' => 'creole',
|
|
'Crystal' => 'crystal',
|
|
'CSON' => 'cson',
|
|
'Csound' => 'csound',
|
|
'Csound Document' => 'csound-document',
|
|
'Csound Score' => 'csound-score',
|
|
'CSS' => 'css',
|
|
'CSV' => 'csv',
|
|
'Cuda' => 'cuda',
|
|
'cURL Config' => 'curl-config',
|
|
'CWeb' => 'cweb',
|
|
'Cycript' => 'cycript',
|
|
'Cython' => 'cython',
|
|
'D' => 'd',
|
|
'D-ObjDump' => 'd-objdump',
|
|
'Darcs Patch' => 'darcs-patch',
|
|
'Dart' => 'dart',
|
|
'DataWeave' => 'dataweave',
|
|
'desktop' => 'desktop',
|
|
'Dhall' => 'dhall',
|
|
'Diff' => 'diff',
|
|
'DIGITAL Command Language' => 'digital-command-language',
|
|
'dircolors' => 'dircolors',
|
|
'DirectX 3D File' => 'directx-3d-file',
|
|
'DM' => 'dm',
|
|
'DNS Zone' => 'dns-zone',
|
|
'Dockerfile' => 'dockerfile',
|
|
'Dogescript' => 'dogescript',
|
|
'DTrace' => 'dtrace',
|
|
'Dylan' => 'dylan',
|
|
'E' => 'e',
|
|
'Eagle' => 'eagle',
|
|
'Easybuild' => 'easybuild',
|
|
'EBNF' => 'ebnf',
|
|
'eC' => 'ec',
|
|
'Ecere Projects' => 'ecere-projects',
|
|
'ECL' => 'ecl',
|
|
'ECLiPSe' => 'eclipse',
|
|
'EditorConfig' => 'editorconfig',
|
|
'Edje Data Collection' => 'edje-data-collection',
|
|
'edn' => 'edn',
|
|
'Eiffel' => 'eiffel',
|
|
'EJS' => 'ejs',
|
|
'Elixir' => 'elixir',
|
|
'Elm' => 'elm',
|
|
'Emacs Lisp' => 'emacs-lisp',
|
|
'EmberScript' => 'emberscript',
|
|
'EML' => 'eml',
|
|
'EQ' => 'eq',
|
|
'Erlang' => 'erlang',
|
|
'F#' => 'f%23', // already URL encoded
|
|
'F*' => 'f*',
|
|
'Factor' => 'factor',
|
|
'Fancy' => 'fancy',
|
|
'Fantom' => 'fantom',
|
|
'Faust' => 'faust',
|
|
'FIGlet Font' => 'figlet-font',
|
|
'Filebench WML' => 'filebench-wml',
|
|
'Filterscript' => 'filterscript',
|
|
'fish' => 'fish',
|
|
'FLUX' => 'flux',
|
|
'Formatted' => 'formatted',
|
|
'Forth' => 'forth',
|
|
'Fortran' => 'fortran',
|
|
'FreeMarker' => 'freemarker',
|
|
'Frege' => 'frege',
|
|
'G-code' => 'g-code',
|
|
'Game Maker Language' => 'game-maker-language',
|
|
'GAML' => 'gaml',
|
|
'GAMS' => 'gams',
|
|
'GAP' => 'gap',
|
|
'GCC Machine Description' => 'gcc-machine-description',
|
|
'GDB' => 'gdb',
|
|
'GDScript' => 'gdscript',
|
|
'Genie' => 'genie',
|
|
'Genshi' => 'genshi',
|
|
'Gentoo Ebuild' => 'gentoo-ebuild',
|
|
'Gentoo Eclass' => 'gentoo-eclass',
|
|
'Gerber Image' => 'gerber-image',
|
|
'Gettext Catalog' => 'gettext-catalog',
|
|
'Gherkin' => 'gherkin',
|
|
'Git Attributes' => 'git-attributes',
|
|
'Git Config' => 'git-config',
|
|
'GLSL' => 'glsl',
|
|
'Glyph' => 'glyph',
|
|
'Glyph Bitmap Distribution Format' => 'glyph-bitmap-distribution-format',
|
|
'GN' => 'gn',
|
|
'Gnuplot' => 'gnuplot',
|
|
'Go' => 'go',
|
|
'Golo' => 'golo',
|
|
'Gosu' => 'gosu',
|
|
'Grace' => 'grace',
|
|
'Gradle' => 'gradle',
|
|
'Grammatical Framework' => 'grammatical-framework',
|
|
'Graph Modeling Language' => 'graph-modeling-language',
|
|
'GraphQL' => 'graphql',
|
|
'Graphviz (DOT)' => 'graphviz-(dot)',
|
|
'Groovy' => 'groovy',
|
|
'Groovy Server Pages' => 'groovy-server-pages',
|
|
'Hack' => 'hack',
|
|
'Haml' => 'haml',
|
|
'Handlebars' => 'handlebars',
|
|
'HAProxy' => 'haproxy',
|
|
'Harbour' => 'harbour',
|
|
'Haskell' => 'haskell',
|
|
'Haxe' => 'haxe',
|
|
'HCL' => 'hcl',
|
|
'HiveQL' => 'hiveql',
|
|
'HLSL' => 'hlsl',
|
|
'HolyC' => 'holyc',
|
|
'HTML+Django' => 'html+django',
|
|
'HTML+ECR' => 'html+ecr',
|
|
'HTML+EEX' => 'html+eex',
|
|
'HTML+ERB' => 'html+erb',
|
|
'HTML+PHP' => 'html+php',
|
|
'HTML+Razor' => 'html+razor',
|
|
'HTTP' => 'http',
|
|
'HXML' => 'hxml',
|
|
'Hy' => 'hy',
|
|
'HyPhy' => 'hyphy',
|
|
'IDL' => 'idl',
|
|
'Idris' => 'idris',
|
|
'Ignore List' => 'ignore-list',
|
|
'IGOR Pro' => 'igor-pro',
|
|
'Inform 7' => 'inform-7',
|
|
'INI' => 'ini',
|
|
'Inno Setup' => 'inno-setup',
|
|
'Io' => 'io',
|
|
'Ioke' => 'ioke',
|
|
'IRC log' => 'irc-log',
|
|
'Isabelle' => 'isabelle',
|
|
'Isabelle ROOT' => 'isabelle-root',
|
|
'J' => 'j',
|
|
'Jasmin' => 'jasmin',
|
|
'Java' => 'java',
|
|
'Java Properties' => 'java-properties',
|
|
'Java Server Pages' => 'java-server-pages',
|
|
'JavaScript' => 'javascript',
|
|
'JavaScript+ERB' => 'javascript+erb',
|
|
'JFlex' => 'jflex',
|
|
'Jison' => 'jison',
|
|
'Jison Lex' => 'jison-lex',
|
|
'Jolie' => 'jolie',
|
|
'JSON' => 'json',
|
|
'JSON with Comments' => 'json-with-comments',
|
|
'JSON5' => 'json5',
|
|
'JSONiq' => 'jsoniq',
|
|
'JSONLD' => 'jsonld',
|
|
'Jsonnet' => 'jsonnet',
|
|
'JSX' => 'jsx',
|
|
'Julia' => 'julia',
|
|
'Jupyter Notebook' => 'jupyter-notebook',
|
|
'KiCad Layout' => 'kicad-layout',
|
|
'KiCad Legacy Layout' => 'kicad-legacy-layout',
|
|
'KiCad Schematic' => 'kicad-schematic',
|
|
'Kit' => 'kit',
|
|
'Kotlin' => 'kotlin',
|
|
'KRL' => 'krl',
|
|
'LabVIEW' => 'labview',
|
|
'Lasso' => 'lasso',
|
|
'Latte' => 'latte',
|
|
'Lean' => 'lean',
|
|
'Less' => 'less',
|
|
'Lex' => 'lex',
|
|
'LFE' => 'lfe',
|
|
'LilyPond' => 'lilypond',
|
|
'Limbo' => 'limbo',
|
|
'Linker Script' => 'linker-script',
|
|
'Linux Kernel Module' => 'linux-kernel-module',
|
|
'Liquid' => 'liquid',
|
|
'Literate Agda' => 'literate-agda',
|
|
'Literate CoffeeScript' => 'literate-coffeescript',
|
|
'Literate Haskell' => 'literate-haskell',
|
|
'LiveScript' => 'livescript',
|
|
'LLVM' => 'llvm',
|
|
'Logos' => 'logos',
|
|
'Logtalk' => 'logtalk',
|
|
'LOLCODE' => 'lolcode',
|
|
'LookML' => 'lookml',
|
|
'LoomScript' => 'loomscript',
|
|
'LSL' => 'lsl',
|
|
'LTspice Symbol' => 'ltspice-symbol',
|
|
'Lua' => 'lua',
|
|
'M' => 'm',
|
|
'M4' => 'm4',
|
|
'M4Sugar' => 'm4sugar',
|
|
'Makefile' => 'makefile',
|
|
'Mako' => 'mako',
|
|
'Markdown' => 'markdown',
|
|
'Marko' => 'marko',
|
|
'Mask' => 'mask',
|
|
'Mathematica' => 'mathematica',
|
|
'MATLAB' => 'matlab',
|
|
'Maven POM' => 'maven-pom',
|
|
'Max' => 'max',
|
|
'MAXScript' => 'maxscript',
|
|
'mcfunction' => 'mcfunction',
|
|
'MediaWiki' => 'mediawiki',
|
|
'Mercury' => 'mercury',
|
|
'Meson' => 'meson',
|
|
'Metal' => 'metal',
|
|
'Microsoft Developer Studio Project' => 'microsoft-developer-studio-project',
|
|
'MiniD' => 'minid',
|
|
'Mirah' => 'mirah',
|
|
'mIRC Script' => 'mirc-script',
|
|
'MLIR' => 'mlir',
|
|
'Modelica' => 'modelica',
|
|
'Modula-2' => 'modula-2',
|
|
'Modula-3' => 'modula-3',
|
|
'Module Management System' => 'module-management-system',
|
|
'Monkey' => 'monkey',
|
|
'Moocode' => 'moocode',
|
|
'MoonScript' => 'moonscript',
|
|
'Motorola 68K Assembly' => 'motorola-68k-assembly',
|
|
'MQL4' => 'mql4',
|
|
'MQL5' => 'mql5',
|
|
'MTML' => 'mtml',
|
|
'MUF' => 'muf',
|
|
'mupad' => 'mupad',
|
|
'Muse' => 'muse',
|
|
'Myghty' => 'myghty',
|
|
'nanorc' => 'nanorc',
|
|
'NASL' => 'nasl',
|
|
'NCL' => 'ncl',
|
|
'Nearley' => 'nearley',
|
|
'Nemerle' => 'nemerle',
|
|
'nesC' => 'nesc',
|
|
'NetLinx' => 'netlinx',
|
|
'NetLinx+ERB' => 'netlinx+erb',
|
|
'NetLogo' => 'netlogo',
|
|
'NewLisp' => 'newlisp',
|
|
'Nextflow' => 'nextflow',
|
|
'Nginx' => 'nginx',
|
|
'Nim' => 'nim',
|
|
'Ninja' => 'ninja',
|
|
'Nit' => 'nit',
|
|
'Nix' => 'nix',
|
|
'NL' => 'nl',
|
|
'NPM Config' => 'npm-config',
|
|
'NSIS' => 'nsis',
|
|
'Nu' => 'nu',
|
|
'NumPy' => 'numpy',
|
|
'ObjDump' => 'objdump',
|
|
'Object Data Instance Notation' => 'object-data-instance-notation',
|
|
'Objective-C' => 'objective-c',
|
|
'Objective-C++' => 'objective-c++',
|
|
'Objective-J' => 'objective-j',
|
|
'ObjectScript' => 'objectscript',
|
|
'OCaml' => 'ocaml',
|
|
'Odin' => 'odin',
|
|
'Omgrofl' => 'omgrofl',
|
|
'ooc' => 'ooc',
|
|
'Opa' => 'opa',
|
|
'Opal' => 'opal',
|
|
'Open Policy Agent' => 'open-policy-agent',
|
|
'OpenCL' => 'opencl',
|
|
'OpenEdge ABL' => 'openedge-abl',
|
|
'OpenQASM' => 'openqasm',
|
|
'OpenRC runscript' => 'openrc-runscript',
|
|
'OpenSCAD' => 'openscad',
|
|
'OpenStep Property List' => 'openstep-property-list',
|
|
'OpenType Feature File' => 'opentype-feature-file',
|
|
'Org' => 'org',
|
|
'Ox' => 'ox',
|
|
'Oxygene' => 'oxygene',
|
|
'Oz' => 'oz',
|
|
'P4' => 'p4',
|
|
'Pan' => 'pan',
|
|
'Papyrus' => 'papyrus',
|
|
'Parrot' => 'parrot',
|
|
'Parrot Assembly' => 'parrot-assembly',
|
|
'Parrot Internal Representation' => 'parrot-internal-representation',
|
|
'Pascal' => 'pascal',
|
|
'Pawn' => 'pawn',
|
|
'Pep8' => 'pep8',
|
|
'Perl' => 'perl',
|
|
'Pic' => 'pic',
|
|
'Pickle' => 'pickle',
|
|
'PicoLisp' => 'picolisp',
|
|
'PigLatin' => 'piglatin',
|
|
'Pike' => 'pike',
|
|
'PLpgSQL' => 'plpgsql',
|
|
'PLSQL' => 'plsql',
|
|
'Pod' => 'pod',
|
|
'Pod 6' => 'pod-6',
|
|
'PogoScript' => 'pogoscript',
|
|
'Pony' => 'pony',
|
|
'PostCSS' => 'postcss',
|
|
'PostScript' => 'postscript',
|
|
'POV-Ray SDL' => 'pov-ray-sdl',
|
|
'PowerBuilder' => 'powerbuilder',
|
|
'PowerShell' => 'powershell',
|
|
'Prisma' => 'prisma',
|
|
'Processing' => 'processing',
|
|
'Proguard' => 'proguard',
|
|
'Prolog' => 'prolog',
|
|
'Propeller Spin' => 'propeller-spin',
|
|
'Protocol Buffer' => 'protocol-buffer',
|
|
'Public Key' => 'public-key',
|
|
'Pug' => 'pug',
|
|
'Puppet' => 'puppet',
|
|
'Pure Data' => 'pure-data',
|
|
'PureBasic' => 'purebasic',
|
|
'PureScript' => 'purescript',
|
|
'Python console' => 'python-console',
|
|
'Python traceback' => 'python-traceback',
|
|
'q' => 'q',
|
|
'QMake' => 'qmake',
|
|
'QML' => 'qml',
|
|
'Quake' => 'quake',
|
|
'R' => 'r',
|
|
'Racket' => 'racket',
|
|
'Ragel' => 'ragel',
|
|
'Raku' => 'raku',
|
|
'RAML' => 'raml',
|
|
'Rascal' => 'rascal',
|
|
'Raw token data' => 'raw-token-data',
|
|
'RDoc' => 'rdoc',
|
|
'Readline Config' => 'readline-config',
|
|
'REALbasic' => 'realbasic',
|
|
'Reason' => 'reason',
|
|
'Rebol' => 'rebol',
|
|
'Red' => 'red',
|
|
'Redcode' => 'redcode',
|
|
'Regular Expression' => 'regular-expression',
|
|
'Ren\'Py' => 'ren\'py',
|
|
'RenderScript' => 'renderscript',
|
|
'reStructuredText' => 'restructuredtext',
|
|
'REXX' => 'rexx',
|
|
'RHTML' => 'rhtml',
|
|
'Rich Text Format' => 'rich-text-format',
|
|
'Ring' => 'ring',
|
|
'Riot' => 'riot',
|
|
'RMarkdown' => 'rmarkdown',
|
|
'RobotFramework' => 'robotframework',
|
|
'Roff' => 'roff',
|
|
'Roff Manpage' => 'roff-manpage',
|
|
'Rouge' => 'rouge',
|
|
'RPC' => 'rpc',
|
|
'RPM Spec' => 'rpm-spec',
|
|
'Ruby' => 'ruby',
|
|
'RUNOFF' => 'runoff',
|
|
'Rust' => 'rust',
|
|
'Sage' => 'sage',
|
|
'SaltStack' => 'saltstack',
|
|
'SAS' => 'sas',
|
|
'Sass' => 'sass',
|
|
'Scala' => 'scala',
|
|
'Scaml' => 'scaml',
|
|
'Scheme' => 'scheme',
|
|
'Scilab' => 'scilab',
|
|
'SCSS' => 'scss',
|
|
'sed' => 'sed',
|
|
'Self' => 'self',
|
|
'ShaderLab' => 'shaderlab',
|
|
'ShellSession' => 'shellsession',
|
|
'Shen' => 'shen',
|
|
'Slash' => 'slash',
|
|
'Slice' => 'slice',
|
|
'Slim' => 'slim',
|
|
'Smali' => 'smali',
|
|
'Smalltalk' => 'smalltalk',
|
|
'Smarty' => 'smarty',
|
|
'SmPL' => 'smpl',
|
|
'SMT' => 'smt',
|
|
'Solidity' => 'solidity',
|
|
'SourcePawn' => 'sourcepawn',
|
|
'SPARQL' => 'sparql',
|
|
'Spline Font Database' => 'spline-font-database',
|
|
'SQF' => 'sqf',
|
|
'SQL' => 'sql',
|
|
'SQLPL' => 'sqlpl',
|
|
'Squirrel' => 'squirrel',
|
|
'SRecode Template' => 'srecode-template',
|
|
'SSH Config' => 'ssh-config',
|
|
'Stan' => 'stan',
|
|
'Standard ML' => 'standard-ml',
|
|
'Starlark' => 'starlark',
|
|
'Stata' => 'stata',
|
|
'STON' => 'ston',
|
|
'Stylus' => 'stylus',
|
|
'SubRip Text' => 'subrip-text',
|
|
'SugarSS' => 'sugarss',
|
|
'SuperCollider' => 'supercollider',
|
|
'Svelte' => 'svelte',
|
|
'SVG' => 'svg',
|
|
'Swift' => 'swift',
|
|
'SWIG' => 'swig',
|
|
'SystemVerilog' => 'systemverilog',
|
|
'Tcl' => 'tcl',
|
|
'Tcsh' => 'tcsh',
|
|
'Tea' => 'tea',
|
|
'Terra' => 'terra',
|
|
'TeX' => 'tex',
|
|
'Texinfo' => 'texinfo',
|
|
'Text' => 'text',
|
|
'Textile' => 'textile',
|
|
'Thrift' => 'thrift',
|
|
'TI Program' => 'ti-program',
|
|
'TLA' => 'tla',
|
|
'TOML' => 'toml',
|
|
'TSQL' => 'tsql',
|
|
'TSX' => 'tsx',
|
|
'Turing' => 'turing',
|
|
'Turtle' => 'turtle',
|
|
'Twig' => 'twig',
|
|
'TXL' => 'txl',
|
|
'Type Language' => 'type-language',
|
|
'TypeScript' => 'typescript',
|
|
'Unified Parallel C' => 'unified-parallel-c',
|
|
'Unity3D Asset' => 'unity3d-asset',
|
|
'Unix Assembly' => 'unix-assembly',
|
|
'Uno' => 'uno',
|
|
'UnrealScript' => 'unrealscript',
|
|
'UrWeb' => 'urweb',
|
|
'V' => 'v',
|
|
'Vala' => 'vala',
|
|
'VBA' => 'vba',
|
|
'VBScript' => 'vbscript',
|
|
'VCL' => 'vcl',
|
|
'Verilog' => 'verilog',
|
|
'VHDL' => 'vhdl',
|
|
'Vim script' => 'vim-script',
|
|
'Vim Snippet' => 'vim-snippet',
|
|
'Visual Basic .NET' => 'visual-basic-.net',
|
|
'Visual Basic .NET' => 'visual-basic-.net',
|
|
'Volt' => 'volt',
|
|
'Vue' => 'vue',
|
|
'Wavefront Material' => 'wavefront-material',
|
|
'Wavefront Object' => 'wavefront-object',
|
|
'wdl' => 'wdl',
|
|
'Web Ontology Language' => 'web-ontology-language',
|
|
'WebAssembly' => 'webassembly',
|
|
'WebIDL' => 'webidl',
|
|
'WebVTT' => 'webvtt',
|
|
'Wget Config' => 'wget-config',
|
|
'Windows Registry Entries' => 'windows-registry-entries',
|
|
'wisp' => 'wisp',
|
|
'Wollok' => 'wollok',
|
|
'World of Warcraft Addon Data' => 'world-of-warcraft-addon-data',
|
|
'X BitMap' => 'x-bitmap',
|
|
'X Font Directory Index' => 'x-font-directory-index',
|
|
'X PixMap' => 'x-pixmap',
|
|
'X10' => 'x10',
|
|
'xBase' => 'xbase',
|
|
'XC' => 'xc',
|
|
'XCompose' => 'xcompose',
|
|
'XML' => 'xml',
|
|
'XML Property List' => 'xml-property-list',
|
|
'Xojo' => 'xojo',
|
|
'XPages' => 'xpages',
|
|
'XProc' => 'xproc',
|
|
'XQuery' => 'xquery',
|
|
'XS' => 'xs',
|
|
'XSLT' => 'xslt',
|
|
'Xtend' => 'xtend',
|
|
'Yacc' => 'yacc',
|
|
'YAML' => 'yaml',
|
|
'YANG' => 'yang',
|
|
'YARA' => 'yara',
|
|
'YASnippet' => 'yasnippet',
|
|
'ZAP' => 'zap',
|
|
'Zeek' => 'zeek',
|
|
'ZenScript' => 'zenscript',
|
|
'Zephir' => 'zephir',
|
|
'Zig' => 'zig',
|
|
'ZIL' => 'zil',
|
|
'Zimpl' => 'zimpl',
|
|
],
|
|
'defaultValue' => 'All languages'
|
|
]
|
|
],
|
|
|
|
'global' => [
|
|
'date_range' => [
|
|
'name' => 'Date range',
|
|
'type' => 'list',
|
|
'values' => [
|
|
'Today' => 'today',
|
|
'Weekly' => 'weekly',
|
|
'Monthly' => 'monthly',
|
|
],
|
|
'defaultValue' => 'today'
|
|
],
|
|
'spokenLanguage' => [
|
|
'name' => 'Spoken Language Code',
|
|
'type' => 'text',
|
|
'exampleValue' => 'en',
|
|
]
|
|
]
|
|
];
|
|
|
|
public function collectData()
|
|
{
|
|
$url = $this->constructUrl();
|
|
$html = getSimpleHTMLDOM($url);
|
|
|
|
$this->items = [];
|
|
foreach ($html->find('.Box-row') as $element) {
|
|
$item = [];
|
|
|
|
// URI
|
|
$item['uri'] = self::URI_ITEM . $element->find('h2 a', 0)->href;
|
|
|
|
// Title
|
|
$item['title'] = str_replace(' ', '', trim(strip_tags($element->find('h2 a', 0)->plaintext)));
|
|
|
|
// Description
|
|
$description = $element->find('p', 0);
|
|
if ($description != null) {
|
|
$item['content'] = trim(strip_tags($description->innertext));
|
|
}
|
|
|
|
// Time
|
|
$item['timestamp'] = time();
|
|
|
|
// TODO: Proxy?
|
|
$this->items[] = $item;
|
|
}
|
|
}
|
|
|
|
public function getName()
|
|
{
|
|
if (!is_null($this->getInput('language'))) {
|
|
return self::NAME . ': ' . $this->getKey('language');
|
|
}
|
|
|
|
return parent::getName();
|
|
}
|
|
|
|
private function constructUrl()
|
|
{
|
|
$url = self::URI;
|
|
$language = $this->getInput('language');
|
|
$dateRange = $this->getInput('date_range');
|
|
$spokenLanguage = $this->getInput('spokenLanguage');
|
|
|
|
if (!empty($language)) {
|
|
$url .= '/' . $language;
|
|
}
|
|
|
|
$queryParams = [];
|
|
|
|
if (!empty($dateRange)) {
|
|
$queryParams['since'] = $dateRange;
|
|
}
|
|
|
|
if (!empty($spokenLanguage)) {
|
|
$queryParams['spoken_language_code'] = trim($spokenLanguage);
|
|
}
|
|
|
|
if (!empty($queryParams)) {
|
|
$url .= '?' . http_build_query($queryParams);
|
|
}
|
|
|
|
return $url;
|
|
}
|
|
}
|