<button type="button" id="collapse" class="btn btn-danger" data-toggle="collapse" data-target="#disclaimer">DISCLAIMER</button>
<div id="disclaimer" class="collapse">Activities for educational purposes. I am teaching my self to code Front End of Website.
</div>
#disclaimer
should have class collapsed not collapse
jkid314159 sends brownie points to @random-x :sparkles: :thumbsup: :sparkles:
:star: 115 | @random-x | http://www.freecodecamp.com/random-x
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Button with data-target
</button>
<div class="collapse" id="collapseExample">
<div class="well">
...
</div>
</div>
jkid314159 sends brownie points to @random-x :sparkles: :thumbsup: :sparkles:
:warning: jkid314159 already gave random-x points
thejasonfile sends brownie points to @erbastian :sparkles: :thumbsup: :sparkles:
:star: 283 | @erbastian | http://www.freecodecamp.com/erbastian
var h1 = document.querySelector("h1");
var boxes = document.querySelectorAll(".box");
var notes = document.querySelectorAll(".audio");
function playBoxes(){
for(i=0; i<boxes.length; i++){
boxes[i].addEventListener("click", function(){
for(j = 0; j < notes.length; j++){
if(i = j){
notes[i].currentTime = 0;
notes[i].play();
}
}
});
}
}
playBoxes();
if ( i = j )
is not correct. You want to do either i == j
or i === j
if you are comparing values. That might be the problem?i
. When you declare functions like this, the value of i
is a 'global' to each of them, and the problem is that after the for loop creates these functions, each function sees the same 'final' value of i. If you want to prove this, put a console.log statement in there and have it print the value of i
and see if that isn't the case?var value = $('#mySearchBox').val();
var headerHeight = $("div.navbar-header").height();
$(function() {
$('a[href*="#"]:not([href="#"])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top - headerHeight
}, 500);
return false;
}
}
});
});
:bulb: to format code use backticks! ``` more info
outsmart sends brownie points to @mmux :sparkles: :thumbsup: :sparkles:
:star: 2 | @mmux | http://www.freecodecamp.com/mmux
@murtinha
Guys, whats missing here?
function telephoneCheck(str) {
// Good luck!
var regExp=/^1?[\s-]?[^\(]?([0-9]{3})[\)$]?[\s\-]?([0-9]{3})[\s-]?([0-9]{4})$/;
return regExp.test(str);
}
telephoneCheck("(275)76227382");
its challenge Validate US Telephone Numbers
[^\(]?
which means "optionally match anything EXCEPT FOR (
"
murtinha sends brownie points to @random-x :sparkles: :thumbsup: :sparkles:
:star: 118 | @random-x | http://www.freecodecamp.com/random-x
(555)
OR 555
(555
or 555)
murtinha sends brownie points to @random-x :sparkles: :thumbsup: :sparkles:
:warning: murtinha already gave random-x points
please with the buttonclick to tweet the quote and not linkpre-defined text
please with the buttonclick to tweet the quote and not linkpre-defined text p data-height268 data-theme-id0 data-slug-hashmyenmj data-default-tabresult data-userleah-h data-previewtrue classcodepensee the pen a hrefhttpcodepenioleah-hpenmyenmjrand quote gen v2a by leah h a hrefhttpcodepenioleah-h@leah-ha on a hrefhttpcodepeniocodepenapscript async srcassetscodepenioassetsembedeijsscript
$("#yourtweetbutton").on("click", function() {
window.open("http://twitter.com/home/?status=" + $("#yourquote").text();
});
leah-h sends brownie points to @kirbyedy :sparkles: :thumbsup: :sparkles:
:star: 807 | @kirbyedy | http://www.freecodecamp.com/kirbyedy
the-seth sends brownie points to @kirbyedy :sparkles: :thumbsup: :sparkles:
:star: 808 | @kirbyedy | http://www.freecodecamp.com/kirbyedy
$(document).ready(function(){
var users = ["freecodecamp", "storbeck", "terakilobyte", "habathcx","RobotCaleb","thomasballinger","noobs2ninjas","beohoff","ESL_SC2"];
for (var i=0; i<users.length; i++) {
$.getJSON("https://api.twitch.tv/kraken/streams/"+users[i]+"?callback=?", function(data) {
/*$("#results").empty();*/
if (data.stream !== "null") {
$("#results").append("<img src="+data.stream.channel.profile_banner>+"</img>");
/*$("#results").animate("#003300");*/
}
if (data.error) {
$("#results").append("<p>account closed <br>"+users[i]+"</p>");
}
if (data.stream === "null") {
$("#results").append("<p>offline <br>"+data.channel.display_name+"</p>");
}
console.log(data);
document.getElementById("test").innerHTML = data.stream.channel.profile_banner;
});
}
with this code the loop worked through the query however non of the if statement worked how can i make the if statements workdocumentreadyfunctionvar users freecodecamp storbeck terakilobyte habathcxrobotcalebthomasballingernoobs2ninjasbeohoffesl_sc2 for var i0 iuserslength i getjsonhttpsapitwitchtvkrakenstreamsusersicallback functiondata resultsemptyif datastream null resultsappendimg srcdatastreamchannelprofile_bannerimg resultsanimate003300if dataerror resultsappendpaccount closed brusersipif datastream null resultsappendpoffline brdatachanneldisplay_namep consolelogdata documentgetelementbyidtestinnerhtml datastreamchannelprofile_banner
itsdenty sends brownie points to @mutantspore :sparkles: :thumbsup: :sparkles:
:star: 1366 | @mutantspore | http://www.freecodecamp.com/mutantspore
https://api.twitch.tv/kraken/channels/
document.getElementById("twitter_link").setAttribute("data-text",q);
itsdenty sends brownie points to @mutantspore :sparkles: :thumbsup: :sparkles:
:warning: itsdenty already gave mutantspore points
jscapin sends brownie points to @itsdenty and @mutantspore :sparkles: :thumbsup: :sparkles:
:star: 1367 | @mutantspore | http://www.freecodecamp.com/mutantspore
:star: 281 | @itsdenty | http://www.freecodecamp.com/itsdenty
var twitchUsers = [
"freecodecamp",
"storbeck",
"terakilobyte",
"habathcx",
"RobotCaleb",
"comster404",
"brunofin",
"thomasballinger",
"noobs2ninjas",
"beohoff",
"medrybw",
"fixt",
"monstercat",
"aces_tv",
"youredm",
"karachencev",
"behkuhtv"
];
itsdenty sends brownie points to @zerazera :sparkles: :thumbsup: :sparkles:
:star: 309 | @zerazera | http://www.freecodecamp.com/zerazera
mr-kumar-abhishek sends brownie points to @kirbyedy :sparkles: :thumbsup: :sparkles:
:star: 810 | @kirbyedy | http://www.freecodecamp.com/kirbyedy
@media (max-width: @screen-xs-max) { ... }
<div class="prices">
<ul>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
<li>c</li>
</ul>
</div>
.prices li:first-child {
border-radius: 10px 10px 0 0;
}
how does this work if <li> doesn't have a first-child?
@96street shouldn't that be ..
.prices ul li:first-child {
border-radius: 10px 10px 0 0;
}
or ..
.prices ul li:first-child {
border-radius: 10px 10px 0px 0px
}
??
li
is in ul
you have to write them ul
before li
. and .. using px
for pixels makes sense there is percentage values too , also not using ;
on last property of css class was the syntax I was taught but use them it doesn't makes a difference.
em
values too.. for webkit ..
js calculator
not correctly?
I know, then why does it say in the instructions --
Here's how you would give the third element in each well the bounce class:
$(".target:nth-child(3)").addClass("animated bounce");
robertadamian sends brownie points to @gregory-buhler :sparkles: :thumbsup: :sparkles:
:star: 303 | @gregory-buhler | http://www.freecodecamp.com/gregory-buhler
zoher-ali sends brownie points to @kirbyedy and @gregory-buhler :sparkles: :thumbsup: :sparkles:
:star: 812 | @kirbyedy | http://www.freecodecamp.com/kirbyedy
:star: 304 | @gregory-buhler | http://www.freecodecamp.com/gregory-buhler
$("#button").on("click", function() {
window.open("http://twitter.com/home/?status=" + $("#yourquote").text()
<html>
<head>
<title>Star Wars Spoilers</title>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" title="no title" charset="utf-8">
</head>
<body>
<img src="img/deathstar.png" />
<p class="spoiler">
<!--Spoiler:-->
<span>Darth Vader is Luke Skywalker's Father! Noooooooooooo!</span>
</p>
<script src="http://code.jquery.com/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/app.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
$(".spoiler span").hide();
$(".spoiler").append("<button>Reveal Spoiler!</button>");
anyone see the problem here. button shows in codepen but not in browser
dextr36 sends brownie points to @coira :sparkles: :thumbsup: :sparkles:
:star: 542 | @coira | http://www.freecodecamp.com/coira
VM1864 pen.js:14 Uncaught ReferenceError: lat is not defined
//
or http://
in front of api.openweathermap.org/blah
#feedback {
height: 104px;
width: 100px;
pointer-events:none;
position: fixed;
top: 30%;
z-index: 999;
transform: rotate(-90deg);
-webkit-transform: rotate(-90deg);
}
dioannou30 sends brownie points to @coira :sparkles: :thumbsup: :sparkles:
:star: 543 | @coira | http://www.freecodecamp.com/coira
zerka1982 sends brownie points to @gregory-buhler :sparkles: :thumbsup: :sparkles:
:star: 305 | @gregory-buhler | http://www.freecodecamp.com/gregory-buhler
<nav class="navbar navbar-inverse navbar-fixed-top transparent">
<div class="container-fluid">
<ul class="nav navbar-nav pull-right">
<li><a href="" class="btn btn-lg btn-primary padding-top">Aboutme</a></li>
<li><a href="" class=" btn btn-lg btn-primary">Portfolio</a></li> <li><a href="" class="btn btn-lg btn-primary">Contact</a></li></ul> <!-- <a><h1>My Portfolio <h1> --> <a><span class="glyphicon glyphicon-search btn btn-lg"> </span></a>
</div>
</nav>
$('a').click(function() {
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);
return false;
});
$($.attr(this, 'href'))
window
is a reserved keyword for the browser window, so trying to overwrite that = not gonna have a good time.function rot13(str) { // LBH QVQ VG!
var newString ="";
var newCode;
for(i = 0; i < str.length; i++){
newString += str.charCodeAt(i);
}
return newString.split();
}
findname sends brownie points to @gregory-buhler :sparkles: :thumbsup: :sparkles:
:star: 306 | @gregory-buhler | http://www.freecodecamp.com/gregory-buhler
String.fromCharCode(97)
'Hi'.fromCharCode(97)
String.fromCharCode('A'.CharCodeAt())
String.fromCharCode('A'.charCodeAt())
String.fromCharCode()
charCodeAt()
to work
var test = 's'
test.charCodeAt()
works
String.fromCharCode('a'.charCodeAt())
should run with no errors
string
.. not to be confused with the String
:P
function rot13(encodedStr) {
var codeArr = encodedStr.split(""); // String to Array
var decodedArr = [];
for(var i in codeArr) {
decodedArr.push(codeArr[i].charCodeAt() );
}
var s='Hello world';
for (var i = 0; i < s.length; i++) {
console.log(s.charCodeAt(i));
}
ehekatlof sends brownie points to @random-x :sparkles: :thumbsup: :sparkles:
:star: 124 | @random-x | http://www.freecodecamp.com/random-x
divaweb sends brownie points to @ehekatlof and @random-x and @zerazera and @sjames1958gm :sparkles: :thumbsup: :sparkles:
:star: 244 | @ehekatlof | http://www.freecodecamp.com/ehekatlof
:star: 125 | @random-x | http://www.freecodecamp.com/random-x
:star: 481 | @sjames1958gm | http://www.freecodecamp.com/sjames1958gm
:star: 318 | @zerazera | http://www.freecodecamp.com/zerazera
body {
background-color: #93B874;
}
function lookUpProfile(firstName, prop){
for (var i=0; i < contacts.length; i++){
if (contacts[i].firstName === firstName)
{
if (contacts[i].hasOwnProperty(prop)===true)
{ return contacts[i][prop];} else {return "No such property";}
}else return "No such contact";
}
}
I'm stucking in above trouble,, that when I delete "else return "No such contact";", every thing is fine. But when it's coded like above, It returns "No such contact" though conditions is true. (My English is so bad -_- and I don't know how I can explain this. )
ahzuxramsey sends brownie points to @sjames1958gm :sparkles: :thumbsup: :sparkles:
:star: 482 | @sjames1958gm | http://www.freecodecamp.com/sjames1958gm
function lookUpProfile(firstName, prop){
for (var i=0; i < contacts.length; i++){
if (contacts[i].firstName === firstName)
{
if (contacts[i].hasOwnProperty(prop)===true)
{ return contacts[i][prop];} else {return "No such property";}
}
return "No such contact";
}
}
ahzuxramsey sends brownie points to @sjames1958gm :sparkles: :thumbsup: :sparkles:
:warning: ahzuxramsey already gave sjames1958gm points
h2{
margin-top :0px;
padding-top:20px;
}
row
s and col
s then?
findname sends brownie points to @kirbyedy :sparkles: :thumbsup: :sparkles:
:star: 813 | @kirbyedy | http://www.freecodecamp.com/kirbyedy
$('a').click(function() {
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);
return false;
});
$($.attr(this, 'href'))
$
.attr
right away
$
is shorthand for jQuery
, so it's actually calling jQuery.attr
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
first row, maybe picture?
</div>
</div>
<div class="row">
<div class="col-lg-12">
second row, maybe text?
</div>
</div>
</div>
igoramelichev sends brownie points to @clarkarnold and @sjames1958gm :sparkles: :thumbsup: :sparkles:
:star: 432 | @clarkarnold | http://www.freecodecamp.com/clarkarnold
:star: 485 | @sjames1958gm | http://www.freecodecamp.com/sjames1958gm
@ehekatlOf hmm.. ok, so after analyzing it further, it looks like these are just synonyms:
$(<selector>).<function>(<params>);
$.<function>(<selector>, <params>);
(which sort of makes sense since object oriented programming languages often implicitly pass "this" as the first param to function calls)
findname sends brownie points to @random-x :sparkles: :thumbsup: :sparkles:
:star: 126 | @random-x | http://www.freecodecamp.com/random-x
col-xs-12 col-md-8
textArea
resize:none
Hi, I can't understand why the above lines in Sass don't compile into:
#textArea {
resize:none
}
container-fluid
which is a responsive bootstrap class
Solution:
#textArea
resize: none
I didn't have space between : and none.....
findname sends brownie points to @random-x :sparkles: :thumbsup: :sparkles:
:warning: findname already gave random-x points
ashutoshparmar sends brownie points to @adzam5 :sparkles: :thumbsup: :sparkles:
:star: 397 | @adzam5 | http://www.freecodecamp.com/adzam5
:bulb: to format code use backticks! ``` more info
<a href="xyz"><iframe src="xyz" scrolling="no"></iframe></a>
findname sends brownie points to @ashutoshparma :sparkles: :thumbsup: :sparkles:
:warning: could not find receiver for ashutoshparma
$($(element))
ehekatlof sends brownie points to @tommygebru :sparkles: :thumbsup: :sparkles:
:star: 692 | @tommygebru | http://www.freecodecamp.com/tommygebru
scrollTop: $($.attr(this, 'href')).offset().top
}, 500)
http://twitter.com/intent/tweet?text=myQuote
href
console.log(newquote);
right after getdata();
getdata()
console.log(newquote);
jvhensley sends brownie points to @ehekatlof :sparkles: :thumbsup: :sparkles:
:star: 245 | @ehekatlof | http://www.freecodecamp.com/ehekatlof
$(document).ready(function() {
var newquote = "";
var newauthor = "";
var getdata = function () {
$.ajax({
url: 'https://andruxnet-random-famous-quotes.p.mashape.com/cat=famous',
type: 'POST',
data: {},
datatype: 'json',
success: function(data) {
console.log(data);
var apiobj = jQuery.parseJSON(data);
console.log(apiobj);
$(".quotehere").html("\""+apiobj.quote+"\"");
$(".author").html("~ "+apiobj.author);
$('#tweet').attr('href', 'https://twitter.com/intent/tweet?text=' + encodeURIComponent('"' + newquote + '" -- ' + newauthor));
},
error: function(err) { alert(err); },
beforeSend: function(xhr) {
xhr.setRequestHeader("X-Mashape-Authorization", "PpXH6lkRPmmshZ9Tn5HbzhMlNt05p14nt2OjsncBMHfwCuZei2"); //This is my personal Mashape key for this Application group
}
});
//end ajax header
};
//end getdata function
$("#getquote").on("click", function(){
getdata();
});
//end getquote click function
});
//end document ready function
$(".quotehere").html("\""+newquote+"\""); . . .
inside the success
call. then call your getData()
function after the declaration.
for button share in twiteer to pre populate a quote
@ehekatlOf Idk if this is correct but
scrollTop: $($.attr(this, 'href')).offset().top
This code is calling jquery method attr with two arguments this and 'href', then wraps returned element in jquery object and proceeds to do rest of the chained code.
I wouldn't look at it as nested selectors, and you could do the same with:
scrollTop: $(this.atrr('href')).offset().top
scrollTop: $(this.atrr('href')).offset().top
lmao
ehekatlof sends brownie points to @nsloc22 :sparkles: :thumbsup: :sparkles:
:star: 337 | @nsloc22 | http://www.freecodecamp.com/nsloc22
scrollTop: $(this.atrr('href')).offset().top
doesn't work
scrollTop: $($.attr(this, 'href')).offset().top
does
$('form').submit(false);
@ehekatlOf yeah tought it worked
$($(this).attr('href')).offset().top
this works, I guess whatever it is returning it need to be wrap around jquery object so you can call offset().top on it,
no other way
@sjames1958gm it was as simple as adding
$(".wikiSearch").autocomplete( "destroy" );
to the submit function
@ehekatlOf you can read about it here https://api.jquery.com/Types/#jQuery
"Most frequently, you will use the jQuery() function to create a jQuery object. jQuery() can also be accessed by its familiar single-character alias of $()"
ehekatlof sends brownie points to @nsloc22 :sparkles: :thumbsup: :sparkles:
:warning: ehekatlof already gave nsloc22 points
need help.... I'm on the tic tac toe project, I hope you can understand my code
// generates possible states from a given game state
var Successors = function(state) {
var moves = [],
availableMoves = state.availableMoves.slice();
this.possibleStates = availableMoves.map(function(cell) {
moves.push(cell);
var newState = new GameState(state);
newState.board[cell] = newState.activePlayer;
return newState;
});
this.moves = moves; // keep track of the cell selected for new state
console.log(this.moves);
};
This function is changing the state
object that i passed as argument, why so?
about
part, insted of col-md-4
use col-md-8
. here's a guide for bootstrap's grid system http://getbootstrap.com/examples/grid/ :smiley:
img {
width: /* you choose */;
height: /* same here */;
}
text-center
to the paragraph you want to be aligned
alex9911 sends brownie points to @adzam5 :sparkles: :thumbsup: :sparkles:
:star: 398 | @adzam5 | http://www.freecodecamp.com/adzam5
need help.... I'm on the tic tac toe project, I hope you can understand my code
// generates possible states from a given game state
var Successors = function(state) {
var moves = [],
availableMoves = state.availableMoves.slice();
this.possibleStates = availableMoves.map(function(cell) {
moves.push(cell);
var newState = new GameState(state);
newState.board[cell] = newState.activePlayer;
return newState;
});
this.moves = moves; // keep track of the cell selected for new state
console.log(this.moves);
};
This function is changing the state
object that i passed as argument, why so?
background-size: cover;
on the css for the repeating backgrounds
div::not(first-child) {
height: 100vh;
margin: 0;
opacity: 0.7;
}
llylee sends brownie points to @disjfa and @jlouiss :sparkles: :thumbsup: :sparkles:
:star: 366 | @jlouiss | http://www.freecodecamp.com/jlouiss
:star: 307 | @disjfa | http://www.freecodecamp.com/disjfa
llylee sends brownie points to @jlouiss :sparkles: :thumbsup: :sparkles:
:warning: llylee already gave jlouiss points
div:not(:first-child)
igoramelichev sends brownie points to @rouje and @jlouiss :sparkles: :thumbsup: :sparkles:
:star: 367 | @jlouiss | http://www.freecodecamp.com/jlouiss
:star: 308 | @rouje | http://www.freecodecamp.com/rouje
llylee sends brownie points to @disjfa :sparkles: :thumbsup: :sparkles:
:warning: llylee already gave disjfa points
availableMoves = state.availableMoves.slice(); // check if this isn't returning undefined
this.moves = moves; // can you access moves in this scope?
big-country sends brownie points to @jlouiss :sparkles: :thumbsup: :sparkles:
:star: 368 | @jlouiss | http://www.freecodecamp.com/jlouiss
var moves = []
on the third line, availableMoves
works correctly
adzam5 sends brownie points to @markblittle :sparkles: :thumbsup: :sparkles:
:star: 276 | @markblittle | http://www.freecodecamp.com/markblittle
// minimax players, x starts first
var MAX = 'x',
MIN = 'o';
// constructor for game states
var GameState = function(previousState) {
this.board = ['', '', '', '', '', '', '', '', ''];
this.activePlayer = MAX;
this.opponent = MIN;
this.depth = 0; // total moves, necessary utility assignment
// constructs state from previousState, if defined
if (previousState != undefined) {
var p = previousState;
this.board = p.board;
this.activePlayer = p.opponent;
this.opponent = p.activePlayer;
this.depth = p.depth + 1;
}
// returns empty cells indexes
this.availableMoves = this.board.map(function(cell, index) {
if (cell == '')
return index;
});
// checks if this is a terminal state
this.isTerminal = function() {
return willWin(this, this.activePlayer) ||
willWin(this, this.opponent) ||
this.availableMoves.length === 0;
};
};
// generates possible states from a given game state
var Successors = function(state) {
var moves = [],
availableMoves = state.availableMoves.slice();
this.possibleStates = availableMoves.map(function(cell) {
moves.push(cell);
var newState = new GameState(state);
newState.board[cell] = newState.activePlayer;
return newState;
});
this.moves = moves; // keep track of the cell selected for new state
console.log(this.moves);
};
['x', '', '', '', '', '', '', '', '']
, then ['', 'x', '', '', '', '', '', '', '']
, then ['', '', 'x', '', ...]
and so on
['x', '', ...]
, then ['x', 'x', '', ..]
, ['x', 'x', 'x', '', ...]
and so on
var $array=$("#container li").html(data);
lofthur sends brownie points to @sjames1958gm :sparkles: :thumbsup: :sparkles:
:star: 496 | @sjames1958gm | http://www.freecodecamp.com/sjames1958gm
var args = Array.prototype.slice.call(arguments);
lofthur sends brownie points to @animsaj :sparkles: :thumbsup: :sparkles:
:star: 474 | @animsaj | http://www.freecodecamp.com/animsaj
lofthur sends brownie points to @sjames1958gm :sparkles: :thumbsup: :sparkles:
:warning: lofthur already gave sjames1958gm points
function destroyer(arr) {
// Remove all the values
var args = Array.prototype.slice.call(arguments).slice(1);
return arr.filter(function(a) {
return this.indexOf(a) == -1;
}, args);
}
lofthur sends brownie points to @ehekatlof :sparkles: :thumbsup: :sparkles:
:star: 246 | @ehekatlof | http://www.freecodecamp.com/ehekatlof
filter
is just a composite function that's kind of like an each
and an if
combined
http://
… looking still
gpressman sends brownie points to @mutantspore :sparkles: :thumbsup: :sparkles:
:star: 1368 | @mutantspore | http://www.freecodecamp.com/mutantspore
[{"id":500,"main":"Rain","description":"light rain","icon":"10d"}]