diff --git a/bridges/NpciBridge.php b/bridges/NpciBridge.php new file mode 100644 index 00000000..64dab909 --- /dev/null +++ b/bridges/NpciBridge.php @@ -0,0 +1,95 @@ + 'circulars', + 'upi' => 'circular', + 'rupay' => 'circulars', + 'nach' => 'circulars', + 'imps' => 'circular', + 'netc-fastag' => 'circulars', + '99' => 'circular', + 'nfs' => 'circulars', + 'aeps' => 'circulars', + 'bhim-aadhaar' => 'circular', + 'e-rupi' => 'circular', + 'Bharat QR' => 'circulars', + 'bharat-billpay' => 'circulars', + ]; + + const PARAMETERS = [[ + 'product' => [ + 'name' => 'product', + 'type' => 'list', + 'values' => [ + 'CTS' => 'cts', + 'UPI' => 'upi', + 'RuPay' => 'rupay', + 'NACH' => 'nach', + 'IMPS' => 'imps', + 'NETC FASTag' => 'netc-fastag', + '*99#' => '99', + 'NFS' => 'nfs', + 'AePS' => 'aeps', + 'BHIM Aadhaar' => 'bhim-aadhaar', + 'e-RUPI' => 'e-rupi', + 'Bharat BillPay' => 'bharat-billpay' + ] + ] + ]]; + + public function getName() { + $product = $this->getInput('product'); + if ($product) { + $productNameMap = array_flip(self::PARAMETERS[0]['product']['values']); + $productName = $productNameMap[$product]; + return "NPCI Circulars: $productName"; + } + + return 'NPCI Circulars'; + } + + public function getURI(){ + $product = $this->getInput('product'); + return $product ? sprintf('%s/what-we-do/%s/%s', self::URI, $product, self::URL_SUFFIX[$product]) : self::URI; + } + + public function collectData(){ + $html = getSimpleHTMLDOMCached($this->getURI()); + $year = date('Y'); + $elements = $html->find("div[id=year$year] .pdf-item"); + + foreach($elements as $element) { + $title = $element->find('p', 0)->innertext; + + $link = $element->find('a', 0); + + $uri = null; + + if ($link) { + $pdfLink = $link->getAttribute('href'); + $uri = self::URI . str_replace(' ', '+', $pdfLink); + } + + $item = [ + 'uri' => $uri, + 'title' => $title, + 'content' => $title , + 'uid' => sha1($pdfLink), + 'enclosures' => [ + $uri + ] + ]; + + $this->items[] = $item; + } + + $this->items = array_slice($this->items, 0, 15); + } +}