currencies added
@ -2,7 +2,7 @@ import finnhub
|
|||||||
import time
|
import time
|
||||||
import csv
|
import csv
|
||||||
import pytz
|
import pytz
|
||||||
from datetime import datetime
|
from datetime import datetime, timedelta
|
||||||
import json
|
import json
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
import sys, os, base64, hashlib, hmac, select
|
import sys, os, base64, hashlib, hmac, select
|
||||||
@ -219,8 +219,10 @@ def updateNews():
|
|||||||
|
|
||||||
CSV.close()
|
CSV.close()
|
||||||
|
|
||||||
def updateWeather(location, api_key):
|
def updateWeather(api_key):
|
||||||
|
f = open( "csv/weather_location.txt", 'r' )
|
||||||
|
location = f.read()
|
||||||
|
f.close()
|
||||||
url = "https://api.openweathermap.org/data/2.5/weather?q={}&units=metric&appid={}".format(location, api_key)
|
url = "https://api.openweathermap.org/data/2.5/weather?q={}&units=metric&appid={}".format(location, api_key)
|
||||||
r = requests.get(url)
|
r = requests.get(url)
|
||||||
weather = r.json()
|
weather = r.json()
|
||||||
@ -264,6 +266,38 @@ def updateWeather(location, api_key):
|
|||||||
|
|
||||||
json.dump( daily_weather, open( "csv/daily_weather.json", 'w+' ))
|
json.dump( daily_weather, open( "csv/daily_weather.json", 'w+' ))
|
||||||
|
|
||||||
|
|
||||||
|
def updateCurrencies(api_key):
|
||||||
|
base = 'USD'
|
||||||
|
yesterday = datetime.now() - timedelta(1)
|
||||||
|
|
||||||
|
str_tod = datetime.strftime(datetime.now(), '%Y-%m-%d')
|
||||||
|
str_yest = datetime.strftime(yesterday, '%Y-%m-%d')
|
||||||
|
|
||||||
|
url = 'https://api.frankfurter.app/{}..{}?from={}'.format(str_yest, str_tod, base)
|
||||||
|
r = requests.get(url)
|
||||||
|
all_data = r.json()
|
||||||
|
|
||||||
|
currencies = ['AUD', 'CAD', 'CHF', 'EUR', 'GBP', 'JPY', 'NZD']
|
||||||
|
|
||||||
|
c_dict = {}
|
||||||
|
|
||||||
|
print(all_data)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for curr in currencies:
|
||||||
|
|
||||||
|
current = all_data['rates'][str_tod][curr]
|
||||||
|
yesterday = all_data['rates'][str_yest][curr]
|
||||||
|
|
||||||
|
change = current - yesterday
|
||||||
|
|
||||||
|
c_dict[curr] = [current, yesterday]
|
||||||
|
|
||||||
|
print(c_dict)
|
||||||
|
json.dump([base, c_dict], open( "csv/currency.json", 'w+' ))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
newsapi = NewsApiClient(api_key='cf08652bd17647b89aaf469a1a8198a9')
|
newsapi = NewsApiClient(api_key='cf08652bd17647b89aaf469a1a8198a9')
|
||||||
|
|
||||||
@ -300,9 +334,14 @@ if __name__ == '__main__':
|
|||||||
updateUpdate(NY_time)
|
updateUpdate(NY_time)
|
||||||
coins, coin_info, unique_bases = readCryptoCSV('csv/crypto.csv', max_stocks)
|
coins, coin_info, unique_bases = readCryptoCSV('csv/crypto.csv', max_stocks)
|
||||||
|
|
||||||
weather_location, weather_key = 'London', 'bd5d5096a5ba30bbcfb57ead42ab3fee'
|
weather_key = 'bd5d5096a5ba30bbcfb57ead42ab3fee'
|
||||||
|
|
||||||
updateWeather(weather_location, weather_key)
|
currency_key = '862dbb6d1101ce0c5136'
|
||||||
|
|
||||||
|
updateCurrencies(currency_key)
|
||||||
|
|
||||||
|
|
||||||
|
updateWeather( weather_key)
|
||||||
|
|
||||||
updateCrypto(coins, coin_info, unique_bases)
|
updateCrypto(coins, coin_info, unique_bases)
|
||||||
|
|
||||||
@ -324,7 +363,7 @@ if __name__ == '__main__':
|
|||||||
coins, coin_info, unique_bases = readCryptoCSV('csv/crypto.csv', max_stocks)
|
coins, coin_info, unique_bases = readCryptoCSV('csv/crypto.csv', max_stocks)
|
||||||
|
|
||||||
updateCrypto(coins, coin_info, unique_bases)
|
updateCrypto(coins, coin_info, unique_bases)
|
||||||
|
updateCurrencies(currency_key)
|
||||||
updateNews()
|
updateNews()
|
||||||
updateWeather(weather_location, weather_key)
|
updateWeather(weather_location, weather_key)
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
symbol,name,base,current,24hr change
|
symbol,name,base,current,24hr change
|
||||||
BTC,bitcoin,usd,33188,-6.6714954489175025
|
BTC,bitcoin,usd,36574,13.332115883704576
|
||||||
ETH,ethereum,gbp,1783.08,-7.158501133993698
|
ETH,ethereum,gbp,1838.29,6.811992501784067
|
||||||
|
|
1
csv/currency.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
["USD", {"AUD": [1.29, 1.2903], "CAD": [1.2078, 1.2072], "CHF": [0.89487, 0.89591], "EUR": [0.82001, 0.82088], "GBP": [0.70564, 0.70678], "JPY": [109.37, 109.41], "NZD": [1.3879, 1.3861]}]
|
@ -1 +1 @@
|
|||||||
{"main_weather": "Clouds", "description": "overcast clouds", "temp": 19.26, "min_temp": 15.34, "max_temp": 20.86, "feels_like": 18.94, "humidity": 65, "clouds": 100, "wind_speed": 1.84, "wind_direction": 249, "visibility": 10000, "uv": 0, "rain_chance": 0}
|
{"main_weather": "Clouds", "description": "scattered clouds", "temp": 27.76, "min_temp": 26.64, "max_temp": 28.87, "feels_like": 33, "humidity": 90, "clouds": 26, "wind_speed": 0.45, "wind_direction": 42, "visibility": 10000, "uv": 0, "rain_chance": 0.41}
|
@ -1 +1 @@
|
|||||||
[{"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 13.24, "max_temp": 23.67}, {"main_weather": "Clouds", "description": "few clouds", "min_temp": 12.23, "max_temp": 23.89}, {"main_weather": "Rain", "description": "light rain", "min_temp": 14.69, "max_temp": 22.98}, {"main_weather": "Rain", "description": "light rain", "min_temp": 14.9, "max_temp": 24.55}, {"main_weather": "Clouds", "description": "scattered clouds", "min_temp": 15.43, "max_temp": 25.91}, {"main_weather": "Clear", "description": "clear sky", "min_temp": 16.26, "max_temp": 27.68}, {"main_weather": "Rain", "description": "light rain", "min_temp": 17.66, "max_temp": 29.24}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 16.08, "max_temp": 23.33}]
|
[{"main_weather": "Rain", "description": "light rain", "min_temp": 27.38, "max_temp": 29.43}, {"main_weather": "Rain", "description": "light rain", "min_temp": 27.12, "max_temp": 29.24}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 27.26, "max_temp": 29.02}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 27.42, "max_temp": 28.3}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 27.69, "max_temp": 28.6}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 28.04, "max_temp": 29.2}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 27.96, "max_temp": 28.81}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 28.06, "max_temp": 30.03}]
|
@ -1 +1 @@
|
|||||||
08/06/2021 16:30:26
|
09/06/2021 14:00:57
|
||||||
|
|
40
csv/news.csv
@ -1,21 +1,21 @@
|
|||||||
headline,source,date,time
|
headline,source,date,time
|
||||||
Reduce your salt intake to boost your immunity - Times of India,The Times of India,2021-06-08,18:30:00Z
|
COVID-19: UK daily cases highest since February - as PM insists 'freedom day' call will be driven by data - Sky News,Sky.com,2021-06-09,16:29:41Z
|
||||||
Geostationary Earth Orbit Hyperspectral Infrared Radiation Data Improves Local Severe Storm Forecasts - Space Bollyinside - BollyInside,Bollyinside.com,2021-06-08,18:27:29Z
|
Trump’s TikTok^ WeChat Actions Targeting China Revoked by Biden - The Wall Street Journal,The Wall Street Journal,2021-06-09,16:29:00Z
|
||||||
Carbon dioxide levels hit 50 percent higher than preindustrial time - NBC News,NBC News,2021-06-08,18:23:31Z
|
Corals' natural 'sunscreen' may help them weather climate change - Phys.org,Phys.Org,2021-06-09,16:26:34Z
|
||||||
Annual Solar Eclipse Tomorrow^ People of THESE Places in India Will be Able to Watch - India.com,India.com,2021-06-08,18:23:07Z
|
EU takes legal action against Germany after tussle between courts - The Guardian,The Guardian,2021-06-09,16:26:00Z
|
||||||
National Indigenous leaders plan Vatican visit to call for long-awaited papal apology - CBC.ca,CBC News,2021-06-08,18:15:57Z
|
New WhatsApp feature won’t be allowed on iPhones or iPads - only Android phones - The Independent,Independent,2021-06-09,16:25:09Z
|
||||||
N.B. says another 29000 people need to get vaccine before health orders are relaxed - NiagaraFallsReview.ca,Toronto Star,2021-06-08,18:11:50Z
|
Ontario education minister reveals details of new Grade 9 math curriculum - CBC.ca,CBC News,2021-06-09,16:24:29Z
|
||||||
Coroner determines Upper Hutt toddler's playground death was the result of 'tragic accident' - Stuff.co.nz,Stuff.co.nz,2021-06-08,18:06:00Z
|
Manitoba to give $2M in prizes to people who get vaccinated - CBC.ca,CBC News,2021-06-09,16:18:16Z
|
||||||
Controversial scheme to collect and share patient data delayed - The Independent,Independent,2021-06-08,18:05:12Z
|
Scientists find hundreds of examples of mysterious radio blasts coming from deep in the universe - The Independent,Independent,2021-06-09,16:16:24Z
|
||||||
Minecraft updates with Cliffs and Caves Part 1^ adds goats and copper - Polygon,Polygon,2021-06-08,18:04:21Z
|
G7 summit 2021 live: Biden flies into UK for meeting of world leaders^ as EU losing patience over Brexit deal - The Independent,Independent,2021-06-09,16:13:59Z
|
||||||
Utah Jazz rule PG Mike Conley out for Game 1 vs. LA Clippers with hamstring strain - ESPN,ESPN,2021-06-08,17:57:46Z
|
Donald Trump-era ban on TikTok dropped by Joe Biden - BBC News,BBC News,2021-06-09,16:10:56Z
|
||||||
'This was a terrorist attack': Trudeau condemns London hit-and-run that left four Muslim family members dead - CBC.ca,CBC News,2021-06-08,17:56:14Z
|
Enoch Mpianzi: Parktown Boys' High principal reinstated^ will be paid for the six months he hadn't worked - News24,News24,2021-06-09,16:07:09Z
|
||||||
Zidansek and Pavlyuchenkova reach French Open semis after epic battles - The Guardian,The Guardian,2021-06-08,17:51:00Z
|
Russian court expected to outlaw Alexei Navalny’s organisation - The Guardian,The Guardian,2021-06-09,16:04:00Z
|
||||||
New dinosaur species found in Australia was as long as a basketball court - NBC News,NBC News,2021-06-08,17:36:11Z
|
Another 4^700 new COVID-19 vaccines given in Wellington-Dufferin-Guelph - Global News,Global News,2021-06-09,16:02:47Z
|
||||||
Julio Jones declines to take No. 11 from Tennessee Titans' A.J. Brown - ESPN,ESPN,2021-06-08,17:35:03Z
|
Biden holds ‘very deep’ concerns on Brexit and Northern Ireland as he jets to UK - TheJournal.ie,TheJournal.ie,2021-06-09,16:00:00Z
|
||||||
EXCLUSIVE: Listen to the full 40-minute Rudy Giuliani phone call with a Ukrainian presidential aide - CNN ,CNN,2021-06-08,17:35:00Z
|
Teens and adults miss 26 million doses of CDC-recommended vaccines during the COVID-19 pandemic^ study finds - Yahoo News,USA Today,2021-06-09,15:58:49Z
|
||||||
Waterford dog attack: Dog that attacked and killed three-month-old baby girl is put down as post mortem carried out on child - Independent.ie,Independent.ie,2021-06-08,17:31:00Z
|
Bata Q4 results: Net profit falls 23% to 29 cr^ announces dividend of ₹4/share - Mint,Livemint,2021-06-09,15:57:20Z
|
||||||
Missing bundles of joy: Govt can't find woman who gave birth to 10 babies - Eyewitness News,EWN,2021-06-08,17:25:17Z
|
Gap to close 19 UK and Ireland stores after £740m loss during Covid pandemic - The Independent,Independent,2021-06-09,15:47:59Z
|
||||||
UK housing market is on fire^ warns Bank of England chief economist - The Guardian,The Guardian,2021-06-08,17:22:00Z
|
Record-breaking Aussie dinosaur was as long as a basketball court - Livescience.com,Live Science,2021-06-09,15:44:23Z
|
||||||
Chris Harrison: The Bachelor host leaves for good over racism row - BBC News,BBC News,2021-06-08,17:19:39Z
|
Australutean. Paleontologists have identified one of the largest dinosaurs in the world - Pakistan Christian TV,Pakistanchristian.tv,2021-06-09,15:41:15Z
|
||||||
COVID-19 Update: Three-day vaccination blitz at Telus Convention Centre | Delta variant outbreaks confirmed at Foothills | Alberta urges Ottawa to drop hotel quarantines - Calgary Herald,Calgary Herald,2021-06-08,17:15:00Z
|
Google kills its augmented reality “Measure” app - Ars Technica,Ars Technica,2021-06-09,15:36:49Z
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
name,current,opening
|
name,current,opening
|
||||||
MSFT,252.57,255.16
|
MSFT,254.87,253.81
|
||||||
NFLX,492.39,497
|
NFLX,490.31,494.5
|
||||||
GOOG,2482.85,2479.9
|
GOOG,2501.71,2499.5
|
||||||
|
|
1
csv/weather_location.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Hong Kong
|
BIN
final1.ppm
BIN
logos/currencies/aud.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
logos/currencies/cad.png
Normal file
After Width: | Height: | Size: 895 B |
BIN
logos/currencies/chf.png
Normal file
After Width: | Height: | Size: 719 B |
BIN
logos/currencies/eur.png
Normal file
After Width: | Height: | Size: 968 B |
BIN
logos/currencies/gbp.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
logos/currencies/jpy.png
Normal file
After Width: | Height: | Size: 769 B |
BIN
logos/currencies/nzd.png
Normal file
After Width: | Height: | Size: 899 B |
BIN
logos/currencies/usd.png
Normal file
After Width: | Height: | Size: 984 B |
13
server.py
@ -178,6 +178,19 @@ def SetNews():
|
|||||||
|
|
||||||
return hello()
|
return hello()
|
||||||
|
|
||||||
|
@app.route("/SetWeather", methods=['POST'])
|
||||||
|
def SetWeather():
|
||||||
|
text = request.form['text']
|
||||||
|
|
||||||
|
#args = ['q', 'sources', 'category', 'country']
|
||||||
|
|
||||||
|
f = open( "csv/weather_location.txt", 'w+' )
|
||||||
|
f.write(text)
|
||||||
|
f.close()
|
||||||
|
api_caller.sendline('R')
|
||||||
|
|
||||||
|
return hello()
|
||||||
|
|
||||||
@app.route("/DisplayImage", methods=['POST'])
|
@app.route("/DisplayImage", methods=['POST'])
|
||||||
def DisplayImage():
|
def DisplayImage():
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
|
@ -39,7 +39,7 @@ class StockTicker():
|
|||||||
|
|
||||||
self.greenORred = (255, 255, 255)
|
self.greenORred = (255, 255, 255)
|
||||||
#self.blank = Image.open('logos/blank.png')
|
#self.blank = Image.open('logos/blank.png')
|
||||||
self.blank = Image.new('RGB', (0, 32))
|
self.blank = Image.new('RGB', (15, 32))
|
||||||
self.running = True
|
self.running = True
|
||||||
self.brightness = 1.0
|
self.brightness = 1.0
|
||||||
self.delay = 0.02
|
self.delay = 0.02
|
||||||
@ -539,6 +539,48 @@ class StockTicker():
|
|||||||
image_list.append(self.blank)
|
image_list.append(self.blank)
|
||||||
image_list.append(stitchedStock)
|
image_list.append(stitchedStock)
|
||||||
|
|
||||||
|
|
||||||
|
base, currency_info = json.load(open('csv/currency.json', 'r'))
|
||||||
|
|
||||||
|
for i, currency in enumerate(['AUD', 'CAD', 'CHF', 'EUR', 'GBP', 'JPY', 'NZD']):
|
||||||
|
|
||||||
|
current, yesterday = currency_info[currency]
|
||||||
|
print(current, yesterday)
|
||||||
|
change = 1/current - 1/yesterday
|
||||||
|
print(change)
|
||||||
|
current = 1/current
|
||||||
|
current = '%.2f' % current
|
||||||
|
|
||||||
|
|
||||||
|
arrow, change = self.getArrow(change)
|
||||||
|
change = '%.5f' % change
|
||||||
|
midFrame = self.textToImage(currency + '(' + base + ')', current, change, arrow) #IMAGE THE TEXT
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'currencies')
|
||||||
|
|
||||||
|
logo = Image.open(os.path.join(logos_path, currency.lower() + '.png'))
|
||||||
|
bse = Image.open(os.path.join(logos_path, base.lower() + '.png'))
|
||||||
|
|
||||||
|
new_im = Image.new('RGB', (42, 32))
|
||||||
|
|
||||||
|
for im in image_list:
|
||||||
|
|
||||||
|
new_im.paste(bse, (0,10), bse.convert('RGBA'))
|
||||||
|
new_im.paste(logo, (10,0), logo.convert('RGBA'))
|
||||||
|
|
||||||
|
stitchedStock = self.stitchImage([new_im, midFrame])
|
||||||
|
|
||||||
|
except:
|
||||||
|
|
||||||
|
stitchedStock = midFrame
|
||||||
|
|
||||||
|
|
||||||
|
image_list.append(self.blank)
|
||||||
|
image_list.append(stitchedStock)
|
||||||
|
|
||||||
|
|
||||||
finalDisplayImage = self.stitchImage(image_list)
|
finalDisplayImage = self.stitchImage(image_list)
|
||||||
|
|
||||||
if updated_img == 1:
|
if updated_img == 1:
|
||||||
@ -549,8 +591,10 @@ class StockTicker():
|
|||||||
def getTodayWeatherImage(self):
|
def getTodayWeatherImage(self):
|
||||||
img = Image.new('RGB', (225, 32))
|
img = Image.new('RGB', (225, 32))
|
||||||
|
|
||||||
location = 'London'
|
f = open( "csv/weather_location.txt", 'r' )
|
||||||
|
location = f.read()
|
||||||
|
f.close()
|
||||||
|
print(location)
|
||||||
|
|
||||||
current_weather = json.load(open('csv/current_weather.json', 'r'))
|
current_weather = json.load(open('csv/current_weather.json', 'r'))
|
||||||
|
|
||||||
@ -573,7 +617,7 @@ class StockTicker():
|
|||||||
weather_dir = './logos/weather_icons'
|
weather_dir = './logos/weather_icons'
|
||||||
|
|
||||||
weather_img = Image.open(weather_dir + '/weather_type_icons/' + weather_ids[main] + '.png')
|
weather_img = Image.open(weather_dir + '/weather_type_icons/' + weather_ids[main] + '.png')
|
||||||
img.paste(weather_img, (5,12))
|
img.paste(weather_img, (5,9))
|
||||||
|
|
||||||
temp_img = self.textImage(str("{0:.0f}".format(current_weather['temp'])), large_font, r = 200, g = 0, b = 255)
|
temp_img = self.textImage(str("{0:.0f}".format(current_weather['temp'])), large_font, r = 200, g = 0, b = 255)
|
||||||
img.paste(temp_img, (50,9))
|
img.paste(temp_img, (50,9))
|
||||||
@ -584,10 +628,10 @@ class StockTicker():
|
|||||||
|
|
||||||
main = current_weather['main_weather']
|
main = current_weather['main_weather']
|
||||||
main_img = self.textImage(main, small_font)
|
main_img = self.textImage(main, small_font)
|
||||||
img.paste(main_img, (45, 26))
|
img.paste(main_img, (48, 26))
|
||||||
|
|
||||||
feels_img = self.textImage('Feels like:' + str("{0:.0f}".format(current_weather['feels_like'])), small_font, r = 200, g = 0, b = 255)
|
feels_img = self.textImage('Feels like:' + str("{0:.0f}".format(current_weather['feels_like'])), small_font, r = 200, g = 0, b = 255)
|
||||||
img.paste(feels_img, (41, 0))
|
img.paste(feels_img, (location_img.size[0] + 5, 0))
|
||||||
|
|
||||||
min_img = self.textImage( "{0:.0f}".format(current_weather['min_temp']), small_font, r=0, g=0, b=255)
|
min_img = self.textImage( "{0:.0f}".format(current_weather['min_temp']), small_font, r=0, g=0, b=255)
|
||||||
img.paste(min_img, (75, 15))
|
img.paste(min_img, (75, 15))
|
||||||
@ -655,7 +699,9 @@ class StockTicker():
|
|||||||
def getDailyWeatherImage(self):
|
def getDailyWeatherImage(self):
|
||||||
|
|
||||||
|
|
||||||
location = 'London'
|
f = open( "csv/weather_location.txt", 'r' )
|
||||||
|
location = f.read()
|
||||||
|
f.close()
|
||||||
img = Image.new('RGB', (128, 32))
|
img = Image.new('RGB', (128, 32))
|
||||||
|
|
||||||
current_weather = json.load(open('csv/current_weather.json', 'r'))
|
current_weather = json.load(open('csv/current_weather.json', 'r'))
|
||||||
@ -665,7 +711,7 @@ class StockTicker():
|
|||||||
large_font = ImageFont.load("./fonts/10x20.pil")
|
large_font = ImageFont.load("./fonts/10x20.pil")
|
||||||
|
|
||||||
|
|
||||||
location_img = self.textImage(location, small_font, r = 255, g = 255, b = 0)
|
location_img = self.textImage(location, extra_small_font, r = 255, g = 255, b = 0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1013,9 +1059,9 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
|
|
||||||
#stock_ticker.displayText()
|
#stock_ticker.displayText()
|
||||||
#stock_ticker.getFullStockImage(1)
|
stock_ticker.getFullStockImage(1)
|
||||||
#stock_ticker.process_msg('f')
|
stock_ticker.process_msg('f')
|
||||||
#stock_ticker.displayStocks()
|
stock_ticker.displayStocks()
|
||||||
#stock_ticker.displayStocks()
|
#stock_ticker.displayStocks()
|
||||||
|
|
||||||
#stock_ticker.delay = 0.001
|
#stock_ticker.delay = 0.001
|
||||||
|
@ -38,10 +38,16 @@
|
|||||||
<input type="submit" value="Display"style="height:30px">
|
<input type="submit" value="Display"style="height:30px">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<p>Set news search settings. keyword,category,country e.g. bitcoin,business,us/p>
|
<p>Set news search settings. keyword,category,country e.g. bitcoin,business,us </p>
|
||||||
<form action="/SetNews" method="POST">
|
<form action="/SetNews" method="POST">
|
||||||
<input name="text" placeholder="bitcoin,business,us"style="height:24px">
|
<input name="text" placeholder="bitcoin,business,us"style="height:24px">
|
||||||
<input type="submit" value="Display"style="height:30px">
|
<input type="submit" value="Set"style="height:30px">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<p>Set weather location, enter city name e.g. London </p>
|
||||||
|
<form action="/SetWeather" method="POST">
|
||||||
|
<input name="text" placeholder="London"style="height:24px">
|
||||||
|
<input type="submit" value="Set"style="height:30px">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<p>Display an image</p>
|
<p>Display an image</p>
|
||||||
|