Abc Test Sect

No credit card required

This Actor is under maintenance.

This actor is under maintenance and it may unreliable.

Abc Test Sect

Abc Test Sect

fdg43jkg33455/abc-test-sect

No credit card required

Test

.eslintrc

1{ 2 "extends": "@apify" 3} 4

.gitignore

1apify_storage 2node_modules

.npmignore

1# This file tells Git which files shouldn't be added to source control 2 3.idea 4node_modules 5

Dockerfile

1# Dockerfile contains instructions how to build a Docker image that will contain 2# all the code and configuration needed to run your actor. For a full 3# Dockerfile reference, see https://docs.docker.com/engine/reference/builder/ 4 5# First, specify the base Docker image. Apify provides the following base images 6# for your convenience: 7# apify/actor-node-basic (Node.js 10 on Alpine Linux, small and fast image) 8# apify/actor-node-chrome (Node.js 10 + Chrome on Debian) 9# apify/actor-node-chrome-xvfb (Node.js 10 + Chrome + Xvfb on Debian) 10# For more information, see https://apify.com/docs/actor#base-images 11# Note that you can use any other image from Docker Hub. 12FROM apify/actor-node-basic 13 14# Second, copy just package.json and package-lock.json since they are the only files 15# that affect NPM install in the next step 16COPY package*.json ./ 17 18# Install NPM packages, skip optional and development dependencies to keep the 19# image small. Avoid logging too much and print the dependency tree for debugging 20RUN npm --quiet set progress=false \ 21 && npm install --only=prod --no-optional \ 22 && echo "Installed NPM packages:" \ 23 && npm list \ 24 && echo "Node.js version:" \ 25 && node --version \ 26 && echo "NPM version:" \ 27 && npm --version 28 29# Next, copy the remaining files and directories with the source code. 30# Since we do this after NPM install, quick build will be really fast 31# for simple source file changes. 32COPY . ./ 33 34# Specify how to run the source code 35CMD npm start 36

INPUT_SCHEMA.json

1{ 2 "title": "Firestore Import input", 3 "description": "Imports dataset to Firestore DB", 4 "type": "object", 5 "schemaVersion": 1, 6 "properties": { 7 "datasetId": { 8 "title": "Dataset", 9 "type": "string", 10 "description": "Dataset ID of dataset you want to import to Firestore", 11 "editor": "textfield" 12 }, 13 "apiKey": { 14 "title": "Api key", 15 "type": "string", 16 "description": "Firestore API key", 17 "editor": "textfield" 18 }, 19 "authDomain": { 20 "title": "Auth domain", 21 "type": "string", 22 "description": "Firestore authentication domain", 23 "editor": "textfield" 24 }, 25 "projectId": { 26 "title": "Project ID", 27 "type": "string", 28 "description": "Firestore project ID", 29 "editor": "textfield" 30 }, 31 "collectionName": { 32 "title": "Collection name", 33 "type": "string", 34 "description": "Firestore collection name", 35 "editor": "textfield" 36 } 37 } 38} 39

apify.json

1{ 2 "name": "firestore-import", 3 "version": "0.0", 4 "buildTag": "latest", 5 "env": null, 6 "template": "hello_world" 7} 8

main.js

1const Apify = require('apify'); 2const firebase = require('firebase'); 3const fetch = require('node-fetch'); // Import the fetch function 4 5function fetchMultipleUrls2(urls) { 6 try { 7 const promises = urls.map(url => fetch(url).then(response => response.json())); 8 return Promise.all(promises); 9 } catch (error) { 10 console.error('Error fetching data:', error); 11 } 12} 13 14function fetchMultipleUrls(urls) { 15 const promises = urls.map(url => 16 fetch(url) 17 .then(response => { 18 if (response.status === 404 || response.status === 400) { 19 //console.warn(`URL ${url} returned a ${response.status} status.`); 20 return {}; // Return an empty object for 404 and 400 errors 21 } 22 if (!response.ok) { 23 // Handle non-OK responses here (e.g., other error status codes) 24 //console.error(`Failed to fetch ${url}. Status: ${response.status}`); 25 //throw new Error(`Failed to fetch ${url}. Status: ${response.status}`); 26 return {}; 27 } 28 return response.json(); 29 }) 30 .catch(error => { 31 console.error(`Error while fetching ${url}: ${error}`); 32 return {}; // Return an empty object in case of an error 33 }) 34 ); 35 36 return Promise.all(promises); 37} 38 39async function startFetchingNseIndicesData() { 40 try { 41 // console.log("calling fetchMultipleUrls function"); 42 43 44 var urls =[ 45 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%2050.json", 46 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20NEXT%2050.json", 47 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20100.json", 48 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20200.json", 49 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20500.json", 50 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDCAP%20150.json", 51 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDCAP%2050.json", 52 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDCAP%20SELECT.json", 53 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDCAP%20100.json", 54 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SMALLCAP%20250.json", 55 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SMALLCAP%2050.json", 56 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SMALLCAP%20100.json", 57 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20LARGEMIDCAP%20250.json", 58 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDSMALLCAP%20400.json", 59 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20AUTO.json", 60 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20BANK.json", 61 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20FINANCIAL%20SERVICES.json", 62 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20FMCG.json", 63 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20IT.json", 64 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MEDIA.json", 65 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20METAL.json", 66 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20PHARMA.json", 67 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20PRIVATE%20BANK.json", 68 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20PSU%20BANK.json", 69 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20REALTY.json", 70 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20ADITYA%20BIRLA%20GROUP.json", 71 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20COMMODITIES.json", 72 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20SHARIAH.json", 73 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20CPSE.json", 74 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20ENERGY.json", 75 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20INDIA%20CONSUMPTION.json", 76 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20INFRASTRUCTURE.json", 77 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20INDIA%20MANUFACTURING.json", 78 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MAHINDRA%20GROUP.json", 79 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDCAP%20LIQUID%2015.json", 80 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MNC.json", 81 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20PSE.json", 82 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SERVICES%20SECTOR.json", 83 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SHARIAH%2025.json", 84 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20TATA%20GROUP.json", 85 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20TATA%20GROUP%2025%%20CAP.json", 86 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY100%20LIQUID%2015.json", 87 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20SHARIAH.json", 88 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY500%20SHARIAH.json", 89 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SME%20EMERGE.json", 90 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY100%20EQUAL%20WEIGHT.json", 91 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY100%20LOW%20VOLATILITY%2030.json", 92 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20ALPHA%2050.json", 93 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20EQUITY%20SAVINGS.json", 94 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%2050%20ARBITRAGE.json", 95 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%2050%20FUTURES%20PR.json", 96 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%2050%20FUTURES%20TR.json", 97 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20DIVIDEND%20OPPORTUNITIES%2050.json", 98 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20HIGH%20BETA%2050.json", 99 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20LOW%20VOLATILITY%2050.json", 100 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY100%20QUALITY%2030.json", 101 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20GROWTH%20SECTORS%2015.json", 102 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20DIVIDEND%20POINTS.json", 103 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20EQUAL%20WEIGHT.json", 104 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20PR%201X%20INVERSE.json", 105 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20PR%202X%20LEVERAGE.json", 106 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20TR%201X%20INVERSE.json", 107 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20TR%202X%20LEVERAGE.json", 108 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20USD.json", 109 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY50%20VALUE%2020.json", 110 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20AAA%20CORPORATE%20BOND.json", 111 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%201D%20RATE%20INDEX.json", 112 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%2010%20YEAR%20SDL%20INDEX.json", 113 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY100%20ALPHA%2030.json", 114 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY500%20VALUE%2050.json", 115 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY200%20QUALITY%2030.json", 116 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDCAP150%20QUALITY%2050.json", 117 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20CONSUMER%20DURABLES.json", 118 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20OIL%20&%20GAS.json", 119 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY200%20MOMENTUM%2030.json", 120 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20CPSE%20BOND%20PLUS%20SDL%20SEP%202024%2050:50%20INDEX.json", 121 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20HEALTHCARE.json", 122 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY500%20MULTICAP%2050:25:25.json", 123 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20AAA%20BOND%20PLUS%20SDL%20APR%202026%2050:50%20INDEX.json", 124 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20PSU%20BOND%20PLUS%20SDL%20APR%202026%2050:50%20INDEX.json", 125 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20PSU%20BOND%20PLUS%20SDL%20APR%202027%2050:50%20INDEX.json", 126 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20APR%202026%20TOP%2020%20EQUAL%20WEIGHT%20INDEX.json", 127 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MICROCAP%20250.json", 128 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY100%20ENHANCED%20ESG.json", 129 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20PLUS%20PSU%20BOND%20SEP%202026%2060:40%20INDEX.json", 130 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20PSU%20BOND%20PLUS%20SDL%20SEP%202027%2040:60%20INDEX.json", 131 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20TOTAL%20MARKET.json", 132 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20AAA%20BOND%20PLUS%20SDL%20APR%202026%2070:30%20INDEX.json", 133 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20AAA%20BOND%20PLUS%20SDL%20APR%202031%2070:30%20INDEX.json", 134 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MOBILITY.json", 135 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20INDIA%20DIGITAL.json", 136 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20CPSE%20BOND%20PLUS%20SDL%20SEP%202026%2050:50%20INDEX.json", 137 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20APR%202027%20INDEX.json", 138 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20INDIA%20DEFENCE.json", 139 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20APR%202027%20TOP%2012%20EQUAL%20WEIGHT%20INDEX.json", 140 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20APR%202032%20TOP%2012%20EQUAL%20WEIGHT%20INDEX.json", 141 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20HOUSING.json", 142 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20TRANSPORTATION%20&%20LOGISTICS.json", 143 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20PLUS%20AAA%20PSU%20BOND%20DEC%202027%2060:40%20INDEX.json", 144 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20JUN%202027%20INDEX.json", 145 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20SEP%202027%20INDEX.json", 146 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20AAA%20CPSE%20BOND%20PLUS%20SDL%20APR%202027%2060:40%20INDEX.json", 147 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapCOMMERCIAL%20PAPERS%20INDICES.json", 148 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20FIXED%20INCOME%20PRC%20INDICES.json", 149 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY200%20ALPHA%2030.json", 150 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDSMALL%20FINANCIAL%20SERVICES.json", 151 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDSMALL%20HEALTHCARE.json", 152 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDSMALL%20IT%20&%20TELECOM.json", 153 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDCAP150%20MOMENTUM%2050.json", 154 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20SEP%202025%20INDEX.json", 155 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20PLUS%20AAA%20PSU%20BOND%20JUL%202028%2060:40%20INDEX.json", 156 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20DEC%202028%20INDEX.json", 157 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20AAA%20PSU%20BOND%20PLUS%20SDL%20APR%202026%2050:50%20INDEX.json", 158 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20PLUS%20AAA%20PSU%20BOND%20JUL%202033%2060:40%20INDEX.json", 159 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20AAA%20PSU%20BOND%20PLUS%20SDL%20SEP%202026%2050:50%20INDEX.json", 160 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20MIDSMALL%20INDIA%20CONSUMPTION.json", 161 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20SEP%202026%20INDEX.json", 162 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20SEP%202026%20V1%20INDEX.json", 163 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20JUL%202026%20INDEX.json", 164 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20DEC%202026%20INDEX.json", 165 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20PLUS%20AAA%20PSU%20BOND%20APR%202026%2075:25%20INDEX.json", 166 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20JUL%202033%20INDEX.json", 167 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20OCT%202026%20INDEX.json", 168 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20INDIA%20MUNICIPAL%20BOND.json", 169 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20PLUS%20AAA%20PSU%20BOND%20APR%202028%2075:25.json", 170 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20INDIA%20SOVEREIGN%20GREEN%20BOND%20JAN%202033.json", 171 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20INDIA%20SOVEREIGN%20GREEN%20BOND%20JAN%202028.json", 172 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20JUL%202028.json", 173 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SMALLCAP250%20QUALITY%2050.json", 174 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20SDL%20JUNE%202028.json", 175 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20REITS%20&%20INVITS.json", 176 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20CORE%20HOUSING.json", 177 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%205%20YEAR%20SDL.json", 178 "https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%203%20YEAR%20SDL.json" 179] 180 fetchedDataArray = await fetchMultipleUrls(urls); 181 182 // Loop through and print the fetched data 183 fetchedDataArray.forEach((data, index) => { 184 if( Object.keys(data).length>0 ) 185 { 186 urlCount = urlCount + 1 187 var fetchedUrl = urls[index] 188 var fetchedData = data 189 var returnedDataObj = handleFetchedData( fetchedUrl, fetchedData ) 190 191 var pathOfDocument = returnedDataObj['id'] ; 192 193 onlyForSectorsStocksObj["data"][ returnedDataObj['id'] ] = { 194 "data": returnedDataObj['data'] 195 } 196 onlyForSectorsStocksObj["data"][ returnedDataObj['id'] ]["timeStamp"] = returnedDataObj['nseDate'] 197 onlyForSectorsStocksObj["data"][ returnedDataObj['id'] ]["id"] = returnedDataObj['id'] 198 onlyForSectorsStocksObj['dates'].push( returnedDataObj['nseDate'] ) 199 200 /* 201 console.log(`Result for URL ${urls[index]}:`); 202 console.log(data[0]['sector']); 203 for(var i=0;i<data.length;i++ ) 204 { 205 allSybmolsObj [ data[i]['symbol'] ] =1 206 } 207 */ 208 209 } 210 }); 211 //console.log( urls.length ) 212 //console.log( "urlCount",urlCount) 213 //console.log( Object.keys(allSybmolsObj).length ) 214 //console.log( allSybmolsObj ) 215 //console.log("done"); 216 217 console.log("onlyForSectorsStocksObj", onlyForSectorsStocksObj); 218 } catch (error) { 219 console.error('Error accessing fetched data:', error); 220 } 221} 222 223function formatDate(inputDateStr) { 224 // Parse the input date string into a Date object 225 var inputDate = new Date(inputDateStr); 226 227 // Define months in abbreviated form 228 var months = [ 229 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 230 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' 231 ]; 232 233 // Get the day, month, and year components from the Date object 234 var day = String(inputDate.getDate()).padStart(2, '0'); 235 var month = months[inputDate.getMonth()]; 236 var year = inputDate.getFullYear(); 237 238 // Construct the desired output date string 239 var outputDateStr = `${day}-${month}-${year}`; 240 241 // Return the formatted date string 242 return outputDateStr; 243} 244 245function handleFetchedData( fetchedUrl, fetchedData ) 246{ 247 248 249 var dateOptions = { 250 timeZone: 'Asia/Kolkata', 251 year: 'numeric', 252 month: 'short', // Specify 'long' for full month name 253 day: '2-digit', 254}; 255 256 257 //"https://iislliveblob.niftyindices.com/jsonfiles/HeatmapDetail/FinalHeatmapNIFTY%20NEXT%2050.json".split('FinalHeatmap')[1].replace('.json','').replace(/%20/g,' ') 258 var sectorName = fetchedUrl.split('FinalHeatmap')[1].replace('.json','').replace(/%20/g,' ').replace(/&amp;/g,'&').replace(/&/g,'AND') 259 //var sectorName = fetchedUrl.split('FinalHeatmap')[1].replace('.json','').replace(/%20/g,' ') 260 var sectors_identifiers = {"NIFTY 50": {"index": "NIFTY 50", "indexSymbol": "NIFTY 50", "key": "BROAD MARKET INDICES" }, "NIFTY NEXT 50": {"index": "NIFTY NEXT 50", "indexSymbol": "NIFTY NEXT 50", "key": "BROAD MARKET INDICES" }, "NIFTY 100": {"index": "NIFTY 100", "indexSymbol": "NIFTY 100", "key": "BROAD MARKET INDICES" }, "NIFTY 200": {"index": "NIFTY 200", "indexSymbol": "NIFTY 200", "key": "BROAD MARKET INDICES" }, "NIFTY 500": {"index": "NIFTY 500", "indexSymbol": "NIFTY 500", "key": "BROAD MARKET INDICES" }, "NIFTY MIDCAP 50": {"index": "NIFTY MIDCAP 50", "indexSymbol": "NIFTY MIDCAP 50", "key": "BROAD MARKET INDICES" }, "NIFTY MIDCAP 100": {"index": "NIFTY MIDCAP 100", "indexSymbol": "NIFTY MIDCAP 100", "key": "BROAD MARKET INDICES" }, "NIFTY SMALLCAP 100": {"index": "NIFTY SMALLCAP 100", "indexSymbol": "NIFTY SMLCAP 100", "key": "BROAD MARKET INDICES" }, "INDIA VIX": {"index": "INDIA VIX", "indexSymbol": "INDIA VIX", "key": "BROAD MARKET INDICES" }, "NIFTY MIDCAP 150": {"index": "NIFTY MIDCAP 150", "indexSymbol": "NIFTY MIDCAP 150", "key": "BROAD MARKET INDICES" }, "NIFTY SMALLCAP 50": {"index": "NIFTY SMALLCAP 50", "indexSymbol": "NIFTY SMLCAP 50", "key": "BROAD MARKET INDICES" }, "NIFTY SMALLCAP 250": {"index": "NIFTY SMALLCAP 250", "indexSymbol": "NIFTY SMLCAP 250", "key": "BROAD MARKET INDICES" }, "NIFTY MIDSMALLCAP 400": {"index": "NIFTY MIDSMALLCAP 400", "indexSymbol": "NIFTY MIDSML 400", "key": "BROAD MARKET INDICES" }, "NIFTY500 MULTICAP 50:25:25": {"index": "NIFTY500 MULTICAP 50:25:25", "indexSymbol": "NIFTY500 MULTICAP", "key": "BROAD MARKET INDICES" }, "NIFTY LARGEMIDCAP 250": {"index": "NIFTY LARGEMIDCAP 250", "indexSymbol": "NIFTY LARGEMID250", "key": "BROAD MARKET INDICES" }, "NIFTY MIDCAP SELECT": {"index": "NIFTY MIDCAP SELECT", "indexSymbol": "NIFTY MID SELECT", "key": "BROAD MARKET INDICES" }, "NIFTY TOTAL MARKET": {"index": "NIFTY TOTAL MARKET", "indexSymbol": "NIFTY TOTAL MKT", "key": "BROAD MARKET INDICES" }, "NIFTY MICROCAP 250": {"index": "NIFTY MICROCAP 250", "indexSymbol": "NIFTY MICROCAP250", "key": "BROAD MARKET INDICES" }, "NIFTY BANK": {"index": "NIFTY BANK", "indexSymbol": "NIFTY BANK", "key": "SECTORAL INDICES" }, "NIFTY AUTO": {"index": "NIFTY AUTO", "indexSymbol": "NIFTY AUTO", "key": "SECTORAL INDICES" }, "NIFTY FINANCIAL SERVICES": {"index": "NIFTY FINANCIAL SERVICES", "indexSymbol": "NIFTY FIN SERVICE", "key": "SECTORAL INDICES" }, "NIFTY FINANCIAL SERVICES 25/50": {"index": "NIFTY FINANCIAL SERVICES 25/50", "indexSymbol": "NIFTY FINSRV25 50", "key": "SECTORAL INDICES" }, "NIFTY FMCG": {"index": "NIFTY FMCG", "indexSymbol": "NIFTY FMCG", "key": "SECTORAL INDICES" }, "NIFTY IT": {"index": "NIFTY IT", "indexSymbol": "NIFTY IT", "key": "SECTORAL INDICES" }, "NIFTY MEDIA": {"index": "NIFTY MEDIA", "indexSymbol": "NIFTY MEDIA", "key": "SECTORAL INDICES" }, "NIFTY METAL": {"index": "NIFTY METAL", "indexSymbol": "NIFTY METAL", "key": "SECTORAL INDICES" }, "NIFTY PHARMA": {"index": "NIFTY PHARMA", "indexSymbol": "NIFTY PHARMA", "key": "SECTORAL INDICES" }, "NIFTY PSU BANK": {"index": "NIFTY PSU BANK", "indexSymbol": "NIFTY PSU BANK", "key": "SECTORAL INDICES" }, "NIFTY PRIVATE BANK": {"index": "NIFTY PRIVATE BANK", "indexSymbol": "NIFTY PVT BANK", "key": "SECTORAL INDICES" }, "NIFTY REALTY": {"index": "NIFTY REALTY", "indexSymbol": "NIFTY REALTY", "key": "SECTORAL INDICES" }, "NIFTY HEALTHCARE INDEX": {"index": "NIFTY HEALTHCARE INDEX", "indexSymbol": "NIFTY HEALTHCARE", "key": "SECTORAL INDICES" }, "NIFTY CONSUMER DURABLES": {"index": "NIFTY CONSUMER DURABLES", "indexSymbol": "NIFTY CONSR DURBL", "key": "SECTORAL INDICES" }, "NIFTY OIL &amp;GAS": {"index": "NIFTY OIL &amp;GAS", "indexSymbol": "NIFTY OIL AND GAS", "key": "SECTORAL INDICES" },"NIFTY OIL &amp; GAS": {"index": "NIFTY OIL &amp;GAS", "indexSymbol": "NIFTY OIL AND GAS", "key": "SECTORAL INDICES" }, "NIFTY DIVIDEND OPPORTUNITIES 50": {"index": "NIFTY DIVIDEND OPPORTUNITIES 50", "indexSymbol": "NIFTY DIV OPPS 50", "key": "STRATEGY INDICES" }, "NIFTY GROWTH SECTORS 15": {"index": "NIFTY GROWTH SECTORS 15", "indexSymbol": "NIFTY GROWSECT 15", "key": "STRATEGY INDICES" }, "NIFTY100 QUALITY 30": {"index": "NIFTY100 QUALITY 30", "indexSymbol": "NIFTY100 QUALTY30", "key": "STRATEGY INDICES" }, "NIFTY50 VALUE 20": {"index": "NIFTY50 VALUE 20", "indexSymbol": "NIFTY50 VALUE 20", "key": "STRATEGY INDICES" }, "NIFTY50 TR 2X LEVERAGE": {"index": "NIFTY50 TR 2X LEVERAGE", "indexSymbol": "NIFTY50 TR 2X LEV", "key": "STRATEGY INDICES" }, "NIFTY50 PR 2X LEVERAGE": {"index": "NIFTY50 PR 2X LEVERAGE", "indexSymbol": "NIFTY50 PR 2X LEV", "key": "STRATEGY INDICES" }, "NIFTY50 TR 1X INVERSE": {"index": "NIFTY50 TR 1X INVERSE", "indexSymbol": "NIFTY50 TR 1X INV", "key": "STRATEGY INDICES" }, "NIFTY50 PR 1X INVERSE": {"index": "NIFTY50 PR 1X INVERSE", "indexSymbol": "NIFTY50 PR 1X INV", "key": "STRATEGY INDICES" }, "NIFTY50 DIVIDEND POINTS": {"index": "NIFTY50 DIVIDEND POINTS", "indexSymbol": "NIFTY50 DIV POINT", "key": "STRATEGY INDICES" }, "NIFTY ALPHA 50": {"index": "NIFTY ALPHA 50", "indexSymbol": "NIFTY ALPHA 50", "key": "STRATEGY INDICES" }, "NIFTY50 EQUAL WEIGHT": {"index": "NIFTY50 EQUAL WEIGHT", "indexSymbol": "NIFTY50 EQL WGT", "key": "STRATEGY INDICES" }, "NIFTY100 EQUAL WEIGHT": {"index": "NIFTY100 EQUAL WEIGHT", "indexSymbol": "NIFTY100 EQL WGT", "key": "STRATEGY INDICES" }, "NIFTY100 LOW VOLATILITY 30": {"index": "NIFTY100 LOW VOLATILITY 30", "indexSymbol": "NIFTY100 LOWVOL30", "key": "STRATEGY INDICES" }, "NIFTY200 QUALITY 30": {"index": "NIFTY200 QUALITY 30", "indexSymbol": "NIFTY200 QUALTY30", "key": "STRATEGY INDICES" }, "NIFTY ALPHA LOW-VOLATILITY 30": {"index": "NIFTY ALPHA LOW-VOLATILITY 30", "indexSymbol": "NIFTY ALPHALOWVOL", "key": "STRATEGY INDICES" }, "NIFTY200 MOMENTUM 30": {"index": "NIFTY200 MOMENTUM 30", "indexSymbol": "NIFTY200MOMENTM30", "key": "STRATEGY INDICES" }, "NIFTY MIDCAP150 QUALITY 50": {"index": "NIFTY MIDCAP150 QUALITY 50", "indexSymbol": "NIFTY M150 QLTY50", "key": "STRATEGY INDICES" }, "NIFTY COMMODITIES": {"index": "NIFTY COMMODITIES", "indexSymbol": "NIFTY COMMODITIES", "key": "THEMATIC INDICES" }, "NIFTY INDIA CONSUMPTION": {"index": "NIFTY INDIA CONSUMPTION", "indexSymbol": "NIFTY CONSUMPTION", "key": "THEMATIC INDICES" }, "NIFTY CPSE": {"index": "NIFTY CPSE", "indexSymbol": "NIFTY CPSE", "key": "THEMATIC INDICES" }, "NIFTY ENERGY": {"index": "NIFTY ENERGY", "indexSymbol": "NIFTY ENERGY", "key": "THEMATIC INDICES" }, "NIFTY INFRASTRUCTURE": {"index": "NIFTY INFRASTRUCTURE", "indexSymbol": "NIFTY INFRA", "key": "THEMATIC INDICES" }, "NIFTY100 LIQUID 15": {"index": "NIFTY100 LIQUID 15", "indexSymbol": "NIFTY100 LIQ 15", "key": "THEMATIC INDICES" }, "NIFTY MIDCAP LIQUID 15": {"index": "NIFTY MIDCAP LIQUID 15", "indexSymbol": "NIFTY MID LIQ 15", "key": "THEMATIC INDICES" }, "NIFTY MNC": {"index": "NIFTY MNC", "indexSymbol": "NIFTY MNC", "key": "THEMATIC INDICES" }, "NIFTY PSE": {"index": "NIFTY PSE", "indexSymbol": "NIFTY PSE", "key": "THEMATIC INDICES" }, "NIFTY SERVICES SECTOR": {"index": "NIFTY SERVICES SECTOR", "indexSymbol": "NIFTY SERV SECTOR", "key": "THEMATIC INDICES" }, "NIFTY100 ESG SECTOR LEADERS": {"index": "NIFTY100 ESG SECTOR LEADERS", "indexSymbol": "NIFTY100ESGSECLDR", "key": "THEMATIC INDICES" }, "NIFTY INDIA DIGITAL": {"index": "NIFTY INDIA DIGITAL", "indexSymbol": "NIFTY IND DIGITAL", "key": "THEMATIC INDICES" }, "NIFTY100 ESG": {"index": "NIFTY100 ESG", "indexSymbol": "NIFTY100 ESG", "key": "THEMATIC INDICES" }, "NIFTY INDIA MANUFACTURING": {"index": "NIFTY INDIA MANUFACTURING", "indexSymbol": "NIFTY INDIA MFG", "key": "THEMATIC INDICES" }, "NIFTY 8-13 YR G-SEC": {"index": "NIFTY 8-13 YR G-SEC", "indexSymbol": "NIFTY GS 8 13YR", "key": "FIXED INCOME INDICES" }, "NIFTY 10 YR BENCHMARK G-SEC": {"index": "NIFTY 10 YR BENCHMARK G-SEC", "indexSymbol": "NIFTY GS 10YR", "key": "FIXED INCOME INDICES" }, "NIFTY 10 YR BENCHMARK G-SEC (CLEAN PRICE)": {"index": "NIFTY 10 YR BENCHMARK G-SEC (CLEAN PRICE)", "indexSymbol": "NIFTY GS 10YR CLN", "key": "FIXED INCOME INDICES" }, "NIFTY 4-8 YR G-SEC INDEX": {"index": "NIFTY 4-8 YR G-SEC INDEX", "indexSymbol": "NIFTY GS 4 8YR", "key": "FIXED INCOME INDICES" }, "NIFTY 11-15 YR G-SEC INDEX": {"index": "NIFTY 11-15 YR G-SEC INDEX", "indexSymbol": "NIFTY GS 11 15YR", "key": "FIXED INCOME INDICES" }, "NIFTY 15 YR AND ABOVE G-SEC INDEX": {"index": "NIFTY 15 YR AND ABOVE G-SEC INDEX", "indexSymbol": "NIFTY GS 15YRPLUS", "key": "FIXED INCOME INDICES" }, "NIFTY COMPOSITE G-SEC INDEX": {"index": "NIFTY COMPOSITE G-SEC INDEX", "indexSymbol": "NIFTY GS COMPSITE", "key": "FIXED INCOME INDICES" }} 261 262 var sectorIdentifier = sectorName 263 if( sectors_identifiers[sectorName] !=undefined ) 264 { 265 sectorIdentifier = sectors_identifiers[sectorName]["indexSymbol"] 266 } 267 sectorIdentifier = sectorIdentifier.replace(/ /g,'_') 268 var indexDivisor = fetchedData[0]['indexDivisor'] 269 270 //"06-Sep-2023 09:07:31" 271 //var formattedDate = new Date( fetchedData[0]['time'] ).toLocaleString('en-IN', dateOptions) 272 var formattedDate = formatDate( fetchedData[0]['time'] ) 273 //var formattedTime = new Date( fetchedData[0]['time'] ).toLocaleString('en-IN', options).split(' ')[1] 274 var nseDate = formattedDate 275 276 277 278 279 var sector_stocks_obj = { 280 "sectorName":sectorName, 281 "indexDivisor":indexDivisor, 282 "data":{}, 283 } 284 285 for(var i=0;i<fetchedData.length;i++ ) 286 { 287 var dataObj = fetchedData[i] 288 var symbol = dataObj['symbol'] 289 290 sector_stocks_obj["data"][symbol] ={ 291 Indexmcap_yst : dataObj['Indexmcap_yst'], 292 cappingFactor : dataObj['cappingFactor'], 293 investableWeightFactor : dataObj['investableWeightFactor'], 294 sharesOutstanding : dataObj['sharesOutstanding'], 295 sector : dataObj['sector'], 296 } 297 } 298 299 300 301 302 303 //console.log( sectorName,"=",sectorIdentifier, nseDate, indexDivisor ) 304 305 var id = 'sector_stockNames' + '/' + sectorIdentifier; 306 var returnableObj = { 307 "data":sector_stocks_obj, 308 "nseDate":nseDate, 309 "id":id } 310 return returnableObj 311} 312 313async function addExtractedSectorStockNamesData( db, createdAtTime, currentSystemDate ) 314{ 315 try { // code that might throw an exception 316 317 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; 318 319 var ApiMainObject = {}; 320 var returnedDataArray ; 321 var pathToStoreData; 322 var pathOfDocument; 323 var dataObj; 324 325 var options = { 326 timeZone: 'Asia/Kolkata', 327 month: 'long', 328 year: 'numeric', 329 }; 330 331 var latestDate; 332 333 //var dates = ['2022-01-01', '2023-01-01', '2023-04-30']; 334 var dates = onlyForSectorsStocksObj['dates']; 335 var newestDate = new Date(dates[0]); 336 337 if (dates.length > 1) { 338 for (var i = 1; i < dates.length; i++) { 339 var currentDate = new Date(dates[i]); 340 if (currentDate > newestDate) { 341 newestDate = currentDate; 342 } 343 } 344 } 345 346 347 function convertIntoSeconds(time) { 348 var ts = time.split(':'); 349 return Date.UTC(1970, 0, 1, ts[0], ts[1], ts[2]) / 1000; 350 } 351 352 353 var timeOptions = { 354 timeZone: 'Asia/Kolkata', 355 year: 'numeric', 356 month: '2-digit', 357 day: '2-digit', 358 hour: '2-digit', 359 minute: '2-digit', 360 second: '2-digit', 361 hour12: false 362 }; 363 364 var currentTime = new Date().toLocaleString('en-IN', timeOptions); 365 var currentTimeHMS = new Date().toLocaleString('en-IN', timeOptions).split(' ')[1]; 366 367 if ( convertIntoSeconds(currentTimeHMS) > convertIntoSeconds('09:00:00') && convertIntoSeconds(currentTimeHMS) <= convertIntoSeconds('09:15:00') ) 368 { // if condition is true then assign current data as newestDate 369 newestDate = new Date(); 370 } 371 //var options2 = { timeZone: 'Asia/Kolkata', year: 'numeric', month: 'short', day: 'numeric' }; 372 //var formattedDate = newestDate.toLocaleDateString('en-IN', options2).replace(/ /g, '-'); 373 //latestDate = formattedDate; 374 var dayOfMonth = String(newestDate.getDate()); 375 if (dayOfMonth.length < 2) { 376 dayOfMonth = '0' + dayOfMonth; 377 } 378 379 latestDate = dayOfMonth +'-'+ months[newestDate.getMonth()] +'-'+ newestDate.getFullYear(); 380 //console.log('Newest date:', latestDate); 381 //console.log("onlyForSectorsStocksObj",onlyForSectorsStocksObj) 382 //console.log("latestDate",latestDate, "currentSystemDate",currentSystemDate) 383 if( Date.parse(latestDate) == Date.parse(currentSystemDate) || convertIntoSeconds(currentTimeHMS) > convertIntoSeconds('09:00:00') && convertIntoSeconds(currentTimeHMS) <= convertIntoSeconds('09:15:00') ) 384 { 385 //April 2023/26-Apr-2023/sector_stockNames/NIFTY_BANK/22:21:16 has 386 var monthYear = new Date( latestDate ).toLocaleString('en-IN', options); 387 for( var SectorsStocks in onlyForSectorsStocksObj['data'] ) 388 { 389 try { // code that might throw an exception 390 391 //var pathOfDocument = returnedDataArray[2] + '/FnO/' +createdAtTime+ '/' +createdAtTime; 392 393 pathOfDocument = onlyForSectorsStocksObj['data'][SectorsStocks]['id'] 394 //console.log("pathOfDocument",pathOfDocument) 395 pathToStoreData = monthYear +'/'+ latestDate+ '/' + pathOfDocument ; 396 397 dataObj={ 398 "data": JSON.stringify( onlyForSectorsStocksObj['data'][SectorsStocks]['data'] ) 399 } 400 console.log( JSON.stringify( onlyForSectorsStocksObj['data'][SectorsStocks]['data'] ).length ) 401 console.log( pathToStoreData ) 402 //docPathForIndexObj [ pathToStoreData ] = pathOfDocument 403 await db.doc( pathToStoreData ).set( dataObj ); 404 405 } catch(error) { 406 // handle the error 407 console.log(error); 408 } 409 } 410 } 411 412 } catch(error) { 413 // handle the error 414 console.log(error); 415 } 416} 417 418 419 420 var options = { 421 timeZone: 'Asia/Kolkata', 422 year: 'numeric', 423 month: '2-digit', 424 day: '2-digit', 425 hour: '2-digit', 426 minute: '2-digit', 427 second: '2-digit' , 428 hour12: false 429 }; 430 431 var allSybmolsObj = {} 432 var urlCount = 0 433 var fetchedDataArray; 434var onlyForSectorsStocksObj= { 435 dates:[], 436 data:{} 437}; 438 439 440Apify.main(async () => { 441 try { 442 443const input = await Apify.getInput(); 444 445 const { data } = input; 446 let islegacyPhantomJSTask = false; 447 if (data && typeof data === 'string') { 448 // It runs from legacy phantomjs crawler task finished webhook 449 const legacyInput = JSON.parse(data); 450 Object.assign(input, legacyInput); 451 islegacyPhantomJSTask = true; 452 } 453 454 const { datasetId, apiKey, authDomain, projectId, collectionName } = input; 455 //console.log("input", input) 456 457 if (!datasetId) { 458 throw new Error('DatasetId is required on input.'); 459 } 460 461 firebase.initializeApp({ 462 apiKey, 463 authDomain, 464 projectId, 465 }); 466 467 //console.log("after calling startRunningActorProcess function"); 468 //console.log( Object.keys(allSybmolsObj).length ) 469 //console.log( allSybmolsObj ) 470 //console.log("done"); 471 472 473 474 // Initialize Cloud Firestore through Firebase 475 var db = firebase.firestore(); 476 477 478 479 var dateOptions = { 480 timeZone: 'Asia/Kolkata', 481 year: 'numeric', 482 month: 'long', // Specify 'long' for full month name 483 day: '2-digit', 484}; 485 486 //var createdAtTime = new Date( datasetInfo["createdAt"] ).toTimeString('en-IN', options).split(' ')[0] 487 var currentSystemDate = new Date().toLocaleString('en-IN', dateOptions) 488 var createdAtTime = new Date().toLocaleString('en-IN', options).split(' ')[1] 489 490 createdAtTime = createdAtTime.split(':')[0] + ':' + createdAtTime.split(':')[1]+ ':00' 491 492 console.log("currentSystemDate", currentSystemDate, "createdAtTime",createdAtTime) 493 494 // console.log("calling startRunningActorProcess function"); 495 await startFetchingNseIndicesData(); 496 await addExtractedSectorStockNamesData( db, createdAtTime, currentSystemDate ) 497 498 } catch (err) { 499 console.error(`Error while running main: ${err.message}`); 500 } 501}); 502

main_ORIGINAL.js

1const Apify = require('apify'); 2const firebase = require('firebase'); 3 4function TestFunction(myurl,createdAtTime) 5{ 6 var myPath= "AprilTest2023/25Apr2023/"+myurl+"/"+createdAtTime; 7 return myPath; 8} 9 10Apify.main(async () => { 11 const input = await Apify.getInput(); 12 13 const { data } = input; 14 let islegacyPhantomJSTask = false; 15 if (data && typeof data === 'string') { 16 // It runs from legacy phantomjs crawler task finished webhook 17 const legacyInput = JSON.parse(data); 18 Object.assign(input, legacyInput); 19 islegacyPhantomJSTask = true; 20 } 21 22 const { datasetId, apiKey, authDomain, projectId, collectionName } = input; 23 24 if (!datasetId) { 25 throw new Error('DatasetId is required on input.'); 26 } 27 28 firebase.initializeApp({ 29 apiKey, 30 authDomain, 31 projectId, 32 }); 33 34 // Initialize Cloud Firestore through Firebase 35 const db = firebase.firestore(); 36 console.log(`Start importing dataset ${datasetId} to firestore.`); 37 const dataset = await Apify.openDataset(datasetId, { forceCloud: true }); 38 const datasetInfo = await dataset.getInfo(); 39 40 //console.log('datasetInfo:', datasetInfo); 41 const createdAt = new Date( datasetInfo["createdAt"] ) 42 43 var options = { 44 timeZone: 'Asia/Kolkata', 45 year: 'numeric', 46 month: '2-digit', 47 day: '2-digit', 48 hour: '2-digit', 49 minute: '2-digit', 50 second: '2-digit' , 51 hour12: false 52 }; 53 54 //var createdAtTime = new Date( datasetInfo["createdAt"] ).toTimeString('en-IN', options).split(' ')[0] 55 var createdAtTime = new Date( datasetInfo["createdAt"] ).toLocaleString('en-IN', options).split(' ')[1] 56 57 // Import dataset from actor/task 58 const limit = 1000; 59 let counter = 0; 60 for (let offset = 0; offset < datasetInfo.itemCount; offset += limit) { 61 const pagination = await dataset.getData({ 62 simplified: islegacyPhantomJSTask, 63 clean: !islegacyPhantomJSTask, 64 limit, 65 offset, 66 }); 67 console.log(`Get dataset items offset: ${pagination.offset}`); 68 for (const item of pagination.items) { 69 var myurl = (item["url"].replace(/[^\w\s]/gi, "")); 70 console.log('item:', myurl ); 71 console.log('createdAt:', createdAt ); 72 73 try { 74 if( item["pageText"]!="" ) 75 { 76 //var myPath= "March2022/10Mar2023/"+myurl+"/"+createdAtTime; 77 var myPath = TestFunction(myurl,createdAtTime); 78 //await db.collection(collectionName).doc( myurl ).set( JSON.parse(item["pageText"]) ); // Use doc() and set() instead of add() 79 //await db.doc( myPath ).set( JSON.parse(item["pageText"]) ); // Use doc() and set() instead of add() 80 var dataObj={ 81 "objectValue":(item["pageText"]) 82 } 83 await db.doc( myPath ).set( dataObj ); // Use doc() and set() instead of add() 84 counter++; 85 //console.log('Added item:', item.replace(/[^\w\s]/gi, '')); 86 87 } 88 89 } catch (err) { 90 //console.log(`Cannot import item ${JSON.stringify(item)}: ${err.message}`); 91 console.log(`Cannot import item ${myurl}: ${err.message}`); 92 } 93 } 94 } 95 96 console.log(`Imported ${counter} from dataset ${datasetId}.`); 97 98 console.log('Done!'); 99}); 100

package.json

1{ 2 "name": "firestore-import", 3 "version": "0.0.1", 4 "description": "This is a boilerplate of an Apify actor.", 5 "dependencies": { 6 "apify": "^0.16.0", 7 "firebase": "^7.2.0" 8 }, 9 "devDependencies": { 10 "@apify/eslint-config": "0.0.3", 11 "eslint": "^6.5.1" 12 }, 13 "scripts": { 14 "start": "node main.js", 15 "test": "echo \"Error: oops, the actor has no tests yet, sad!\" && exit 1" 16 }, 17 "author": "It's not you it's me", 18 "license": "ISC" 19} 20
Developer
Maintained by Community
Actor stats
  • 21 users
  • 1.4k runs
  • Modified 3 months ago
Categories

You might also like these Actors