Closed constructor-igor closed 7 years ago
published issue: Please, could you check why the simple test returns data in HTML format (expected json)?
var request = require('request');
var requestShabbat = "http://www.hebcal.com/shabbat/?cfg=json&m=0&b=18&geo=zip&zip=90210"
request.post(requestShabbat,
{ json: { key: 'value' } },
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(JSON.stringify(body));
}
}
);
<!DOCTYPE html>\n<html><head>\n<meta charset=\"UTF-8\">\n<title>Shabbat Candle Lighting Times for New York City, New York, USA | Hebcal Jewish Calendar</title>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<link rel=\"stylesheet\" href=\"//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css\" integrity=\"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u\" crossorigin=\"anonymous\">\n<link rel=\"stylesheet\" href=\"//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css\" integrity=\"sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp\" crossorigin=\"anonymous\">\n<script>\n (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n })(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n ga('create', 'UA-967247-1', 'auto');\n ga('set', 'anonymizeIp', true);\n ga('send', 'pageview');\n</script>\n<style type=\"text/css\">\n.label{text-transform:none}\n:lang(he) {\n font-family:'Alef','SBL Hebrew',David,serif;\n/* font-size:125%; */\n direction:rtl;\n}\n.hebcal-footer {\n padding-top: 40px;\n padding-bottom: 40px;\n margin-top: 40px;\n color: #777;\n text-align: center;\n border-top: 1px solid #e5e5e5;\n}\n.hebcal-footer p {\n margin-bottom: 2px;\n}\n.bullet-list-inline {\n padding-left: 0;\n margin-left: -3px;\n list-style: none;\n}\n.bullet-list-inline > li {\n display: inline-block;\n padding-right: 3px;\n padding-left: 3px;\n}\n.bullet-list-inline li:after{content:\"\\00a0\\00a0\\00b7\"}\n.bullet-list-inline li:last-child:after{content:\"\"}\n.pagination {margin: 12px 0}\n.h1, .h2, .h3, h1, h2, h3 {\n margin-top: 15px;\n margin-bottom: 10px;\n}\n@media print{\n a[href]:after{content:\"\"}\n .sidebar-nav{display:none}\n}\n@media (min-width: 768px) {\n input#s {\n width: 132px;\n }\n}\n</style>\n<meta name=\"description\" content=\"Candle lighting at 8:04pm on Jun 2. Parashat Nasso. Havdalah (50 min) at 9:12pm on Jun 3.\">\n<script type=\"application/ld+json\">\n{\n \"@context\" : \"http://schema.org\",\n \"@type\" : \"Event\",\n \"name\" : \"Candle Lighting for New York City at 8:04pm\",\n \"startDate\" : \"2017-06-02T20:04:00\",\n \"location\" : {\n \"@type\" : \"Place\",\n \"name\" : \"New York City, New York, USA\",\n \"address\" : {\n \"@type\" : \"PostalAddress\",\n \"addressLocality\" : \"New York City\",\n \"addressRegion\" : \"New York\",\n \"addressCountry\" : \"United States\"\n }\n }\n}\n</script>\n<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"http://www.hebcal.com/shabbat/?cfg=r&geonameid=5128581&m=50&pubDate=0\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"/i/hyspace-typeahead.css\">\n<style type=\"text/css\">\nul.hebcal-results {\n list-style-type:none;\n padding-left: 0;\n}\nul.hebcal-results li {\n margin-bottom: 11px;\n font-size: 21px;\n font-weight: 200;\n line-height: normal;\n}\nul.list-unstyled.nav-list li {\n margin-bottom: 6px;\n}\n</style>\n</head>\n<body>\n<!-- Static navbar -->\n<div class=\"navbar navbar-default navbar-static-top\" role=\"navigation\">\n <div class=\"container-fluid\">\n <div class=\"navbar-header\">\n <button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\".navbar-collapse\">\n <span class=\"sr-only\">Toggle navigation</span>\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </button>\n <a href=\"/\" class=\"navbar-brand\" id=\"logo\" title=\"Hebcal Jewish Calendar\"><img src=\"/i/hebcal-logo-1.2.svg\" width=\"77\" height=\"21\" alt=\"Hebcal\"></a>\n </div>\n <div class=\"navbar-collapse collapse\">\n <ul class=\"nav navbar-nav\"><li><a href=\"/holidays/\" title=\"Jewish Holidays\">Holidays</a></li><li><a href=\"/converter/\" title=\"Hebrew Date Converter\">Date Converter</a></li><li class=\"active\"><a href=\"/shabbat/\" title=\"Shabbat Times\">Shabbat</a></li><li><a href=\"/sedrot/\" title=\"Torah Readings\">Torah</a></li><li><a href=\"/home/about\" title=\"About\">About</a></li><li><a href=\"/home/help\" title=\"Help\">Help</a></li></ul>\n <form class=\"navbar-form navbar-right\" role=\"search\" method=\"get\" id=\"searchform\" action=\"/home/\">\n <input name=\"s\" id=\"s\" type=\"text\" class=\"form-control\" placeholder=\"Search\">\n </form>\n </div><!--/.navbar-collapse -->\n </div>\n</div>\n\n<div class=\"container\">\n<div id=\"content\">\n<div class=\"row\">\n<div class=\"col-sm-9\">\n<h1>Shabbat Times <small>New York City, New York, USA</small></h1>\n<!-- ./hebcal -L 74,0 -l 40,43 -z 'America/New_York' -m 50 -c -s -->\n<ul class=\"hebcal-results\">\n<li class=\"candles\" id=\"20170602_candle_lighting\">Candle lighting: <time datetime=\"2017-06-02T20:04:00\"><strong>8:04pm</strong> on Friday, 02 June 2017</time></li>\n<li class=\"parashat\" id=\"20170603_parashat_nasso\">This week's Torah portion is <a target=\"_top\" href=\"http://www.hebcal.com/sedrot/nasso\">Parashat Nasso</a></li>\n<li class=\"havdalah\" id=\"20170603_havdalah_50_min\">Havdalah (50 min): <time datetime=\"2017-06-03T21:12:00\"><strong>9:12pm</strong> on Saturday, 03 June 2017</time></li>\n</ul>\n<hr>\n<form action=\"/shabbat/\" method=\"get\" role=\"form\" id=\"shabbat-form\">\n<input type=\"hidden\" name=\"geo\" value=\"geoname\" id=\"geo\"><input type=\"hidden\" name=\"zip\" value=\"\" id=\"zip\"><input type=\"hidden\" name=\"city\" value=\"\" id=\"city\"><input type=\"hidden\" name=\"geonameid\" value=\"5128581\" id=\"geonameid\">\n <div class=\"form-group\">\n <label for=\"city-typeahead\">City</label>\n <div class=\"city-typeahead\" style=\"margin-bottom:12px\">\n <input type=\"text\" name=\"city-typeahead\" value=\"New York City, New York, USA\" class=\"form-control typeahead\" id=\"city-typeahead\" placeholder=\"Search for city or ZIP code\">\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"m1\">\n Havdalah minutes past sundown\n <a href=\"#\" id=\"havdalahInfo\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Use 42 min for three medium-sized stars, 50 min for three small stars, 72 min for Rabbeinu Tam, or 0 to suppress Havdalah times\"><span class=\"glyphicon glyphicon-info-sign\"></span></a>\n </label>\n <input type=\"text\" name=\"m\" value=\"50\" size=\"2\" maxlength=\"2\" class=\"form-control\" id=\"m1\" pattern=\"\\d*\" style=\"width:60px\">\n </div>\n <input type=\"submit\" value=\"Get Shabbat Times\" class=\"btn btn-primary\">\n</form>\n<hr>\n<p>Shabbat times for world cities</p>\n<ul class=\"bullet-list-inline\">\n<li><a href=\"/shabbat/?city=IL-Jerusalem\">Jerusalem</a></li>\n<li><a href=\"/shabbat/?city=IL-Tel%20Aviv\">Tel Aviv</a></li>\n<li><a href=\"/shabbat/?city=US-New%20York-NY\">New York</a></li>\n<li><a href=\"/shabbat/?city=US-Los%20Angeles-CA\">Los Angeles</a></li>\n<li><a href=\"/shabbat/?city=GB-London\">London</a></li>\n<li><a href=\"/shabbat/?city=US-Miami-FL\">Miami</a></li>\n<li><a href=\"/shabbat/?city=CA-Montreal\">Montreal</a></li>\n<li><a href=\"/shabbat/?city=US-Baltimore-MD\">Baltimore</a></li>\n<li><a href=\"/shabbat/?city=CA-Toronto\">Toronto</a></li>\n<li><a href=\"/shabbat/?geonameid=5100280\">Lakewood, NJ</a></li>\n<li><a href=\"/shabbat/?city=US-Chicago-IL\">Chicago</a></li>\n<li><a href=\"/shabbat/?geonameid=5110302\">Brooklyn</a></li>\n<li><a href=\"/shabbat/?city=US-San%20Francisco-CA\">San Francisco</a></li>\n<li><a href=\"/shabbat/?geonameid=4148411\">Boca Raton</a></li>\n<li><a href=\"/shabbat/?city=US-Washington-DC\">Washington, DC</a></li>\n<li><a href=\"/shabbat/?geonameid=5809844\">Seattle</a></li>\n<li><a href=\"/shabbat/?city=AU-Melbourne\">Melbourne</a></li>\n<li><a href=\"/shabbat/?city=US-Boston-MA\">Boston</a></li>\n<li><a href=\"/shabbat/?city=CA-Toronto\">Toronto</a></li>\n<li><a href=\"/shabbat/browse/\">More ...</a></li>\n</ul>\n</div><!-- .col-sm-9 -->\n<div class=\"col-sm-3\" role=\"complementary\">\n<div style=\"padding-bottom:16px\">\n<h4>New York City</h4>\n<ul class=\"list-unstyled nav-list\">\n <li>\n <span class=\"glyphicon glyphicon-print\"></span>\n <a title=\"Compact candle-lighting times for 5777\" href=\"/shabbat/fridge.cgi?geonameid=5128581&m=50&year=5777\"> Print 5777</a>\n </li>\n <li><span class=\"glyphicon glyphicon-calendar\"></span> <a href=\"/hebcal/?v=1&geo=geoname&geonameid=5128581&m=50&month=x&year=now&c=on&s=on&maj=on&min=on&mod=on&mf=on&ss=on&nx=on\">Monthly calendar</a></li>\n <li><span class=\"glyphicon glyphicon-envelope\"></span> <a href=\"https://www.hebcal.com/email/?geo=geoname&geonameid=5128581&m=50\">Email weekly Shabbat times</a></li>\n <li>\n <img src=\"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4KPGc+CjxwYXRoIGQ9Ik0yMS41LDAgTDIuNSwwIEMxLjEyNSwwIDAsMS4xMjUgMCwyLjUgTDAsMjEuNSBDMCwyMi44NzUgMS4xMjUsMjQgMi41LDI0IEwyMS41LDI0IEMyMi44NzUsMjQgMjQsMjIuODc1IDI0LDIxLjUgTDI0LDIuNSBDMjQsMS4xMjUgMjIuODc1LDAgMjEuNSwwIE02LjE4MiwxOS45OCBDNC45NzcsMTkuOTggNCwxOS4wMDUgNCwxNy44IEM0LDE2LjU5NiA0Ljk3NywxNS42MTkgNi4xODIsMTUuNjE5IEM3LjM4NSwxNS42MTkgOC4zNjQsMTYuNTk2IDguMzY0LDE3LjggQzguMzYzLDE5LjAwNSA3LjM4NSwxOS45OCA2LjE4MiwxOS45OCBNMTEuNjUzLDIwIEMxMS42NTMsMTcuOTQzIDEwLjg1NSwxNi4wMDYgOS40MSwxNC41NTMgQzcuOTY3LDEzLjEwMiA2LjA1NiwxMi4zMDIgNCwxMi4zMDIgTDQsOS4xNTMgQzkuODI2LDkuMTUzIDE0LjgwMywxNC4xNzQgMTQuODAzLDIwLjAwMSBMMTEuNjUzLDIwLjAwMSBMMTEuNjUzLDIwIE0xNy4yMTcsMjAgQzE3LjIxNywxMi42NzcgMTEuMTk4LDYuNzE5IDQsNi43MTkgTDQsMy41NyBDMTIuOTEsMy41NyAyMC4zNjUsMTAuOTQgMjAuMzY1LDIwIEwxNy4yMTcsMjAgWiIvPgo8L2c+Cjwvc3ZnPgo=\" width=\"14\" height=\"14\">\n <a title=\"RSS feed of candle lighting times\" href=\"/shabbat/?cfg=r&geonameid=5128581&m=50&pubDate=0\">RSS feed</a></li>\n <li><span class=\"glyphicon glyphicon-wrench\"></span> <a rel=\"nofollow\" title=\"Candle lighting and Torah portion for your synagogue site\" href=\"/link/?geonameid=5128581&m=50\">Developer API</a></li>\n</ul>\n</div>\n\n<h5>Advertisement</h5>\n<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script>\n<!-- responsive textonly -->\n<ins class=\"adsbygoogle\"\n style=\"display:block\"\n data-ad-client=\"ca-pub-7687563417622459\"\n data-ad-slot=\"5981467974\"\n data-ad-format=\"auto\"></ins>\n<script>\n(adsbygoogle = window.adsbygoogle || []).push({});\n</script>\n</div><!-- .col-sm-3 -->\n</div><!-- .row -->\n</div><!-- #content -->\n\n<footer role=\"contentinfo\" class=\"hebcal-footer hidden-print\">\n<div class=\"row\">\n<div class=\"col-sm-12\">\n<p><small>Except where otherwise noted, content on this site is licensed under a <a\nrel=\"license\" href=\"http://creativecommons.org/licenses/by/3.0/deed.en_US\">Creative Commons Attribution 3.0 License</a>.</small></p>\n<p><small>Some location data comes from <a href=\"http://www.geonames.org/\">GeoNames</a>,\nalso under a cc-by license.</small></p>\n<ul class=\"bullet-list-inline\">\n<li><time datetime=\"2017-06-02T08:01:05Z\">02 June 2017</time></li>\n<li><a href=\"/home/about\">About</a></li>\n<li><a href=\"/home/about/privacy-policy\">Privacy</a></li>\n<li><a href=\"/home/help\">Help</a></li>\n<li><a href=\"/home/about/contact\">Contact</a></li>\n<li><a href=\"/home/developer-apis\">Developer APIs</a></li>\n</ul>\n</div><!-- .col-sm-12 -->\n</div><!-- .row -->\n</footer>\n</div> <!-- .container -->\n\n<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js\"></script>\n<script src=\"//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js\" integrity=\"sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa\" crossorigin=\"anonymous\"></script>\n<script type=\"text/javascript\">\n$(document).ready(function(){\n $('a.amzn').click(function(){\n var x = $(this).attr('id');\n if (x) {\n ga('send','event','outbound-amzn',x);\n }\n });\n $('a.outbound').click(function(){\n var c=$(this).attr('href');\n if (c&&c.length) {\n var ss=c.indexOf('//');\n if(ss!=-1) {\n var d=c.indexOf('/',ss+2),d2=d!=-1?d:c.length;\n ga('send','event','outbound-article',c.substring(ss+2,d2));\n }\n }\n });\n $('a.download').click(function(){\n var x = $(this).attr('id');\n if (x) {\n ga('send','event','download',x);\n }\n });\n});\n</script>\n<script src=\"//cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.10.4/typeahead.bundle.min.js\"></script>\n<script src=\"/i/hebcal-app-1.6.min.js\"></script>\n<script type=\"text/javascript\">\nwindow['hebcal'].createCityTypeahead(false);\n$('#havdalahInfo').click(function(e){e.preventDefault()}).tooltip();\n</script>\n</body></html>\n<!-- generated 2017-06-02T08:01:05Z; 0.175363 wallclock secs ( 0.11 usr + 0.01 sys = 0.12 CPU) -->\n
get coordinates by location:
http://maps.google.com/maps/api/geocode/json?address=Modiin
{
"results" : [
{
"address_components" : [
{
"long_name" : "Modi'in-Maccabim-Re'ut",
"short_name" : "Modi'in-Maccabim-Re'ut",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Ramla",
"short_name" : "Ramla",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Center District",
"short_name" : "Center District",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Israel",
"short_name" : "IL",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Modi'in-Maccabim-Re'ut, Israel",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 31.932823,
"lng" : 35.040839
},
"southwest" : {
"lat" : 31.8577261,
"lng" : 34.9353009
}
},
"location" : {
"lat" : 31.890267,
"lng" : 35.010397
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 31.932823,
"lng" : 35.040839
},
"southwest" : {
"lat" : 31.8577261,
"lng" : 34.9353009
}
}
},
"place_id" : "ChIJNZp8usTNAhURAzIT5b9sX68",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
get "time zone" by coordinates: https://timezonedb.com/ google API: https://developers.google.com/maps/documentation/timezone/start
https://maps.googleapis.com/maps/api/timezone/json?location=31.890267,35.010397×tamp=1458000000&key=KEY
response:
{
"dstOffset" : 0,
"rawOffset" : 7200,
"status" : "OK",
"timeZoneId" : "Asia/Jerusalem",
"timeZoneName" : "Israel Standard Time"
}
https://www.hebcal.com/home/197/shabbat-times-rest-api