67 lines
2.2 KiB
JavaScript
67 lines
2.2 KiB
JavaScript
const express = require('express');
|
|
const axios = require('axios');
|
|
const cheerio = require('cheerio');
|
|
const cors = require('cors');
|
|
|
|
const app = express();
|
|
const PORT = 3213;
|
|
|
|
app.use(cors());
|
|
|
|
app.get('/api/minm/open', async (req, res) => {
|
|
try {
|
|
|
|
const { data } = await axios.get('https://stockanalysis.com/quote/otc/MINM/');
|
|
const $ = cheerio.load(data);
|
|
let openValue = null;
|
|
let volumeValue = null;
|
|
let daysRangeValue = null;
|
|
let week52RangeValue = null;
|
|
let marketCapValue = null;
|
|
let changeValue = [];
|
|
const priceDiv = $("div.text-4xl.font-bold.transition-colors.duration-300.inline-block").first();
|
|
const price = priceDiv.text().trim();
|
|
const changeDiv = priceDiv.next("div.font-semibold.inline-block.text-2xl.text-red-vivid");
|
|
const change = changeDiv.text().trim();
|
|
if (price && change) {
|
|
changeValue = [price, change];
|
|
}
|
|
|
|
$('td').each((i, el) => {
|
|
if ($(el).text().trim() === 'Open') {
|
|
openValue = $(el).next('td').text().trim();
|
|
}
|
|
if ($(el).text().trim() === 'Volume') {
|
|
volumeValue = $(el).next('td').text().trim();
|
|
}
|
|
if ($(el).text().trim() === "Day's Range") {
|
|
daysRangeValue = $(el).next('td').text().trim();
|
|
}
|
|
if ($(el).text().trim() === '52-Week Range') {
|
|
week52RangeValue = $(el).next('td').text().trim();
|
|
}
|
|
if ($(el).text().trim() === 'Market Cap') {
|
|
marketCapValue = $(el).next('td').text().trim();
|
|
}
|
|
});
|
|
|
|
if (openValue && volumeValue && daysRangeValue && week52RangeValue && marketCapValue && changeValue.length === 2) {
|
|
res.json({ Open: openValue, Volume: volumeValue, DaysRange: daysRangeValue, Week52Range: week52RangeValue, MarketCap: marketCapValue, change: changeValue });
|
|
} else {
|
|
res.status(404).json({
|
|
Open: openValue,
|
|
Volume: volumeValue,
|
|
DaysRange: daysRangeValue,
|
|
Week52Range: week52RangeValue,
|
|
MarketCap: marketCapValue,
|
|
change: changeValue
|
|
});
|
|
}
|
|
} catch (err) {
|
|
res.status(500).json({ error: '', detail: err.message });
|
|
}
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`Server running at http://localhost:${PORT}`);
|
|
}); |