Talking to Dan about his sports law course resulted in this random generator which might be fun for others. It’s still developing but I like the potential for reinforcing some concepts about free speech in a fun way that allows you to repeatedly explore the topic without it getting tedious.
I thought this would be a few minutes of work but I believe that Google has shifted the structure of their JSON feeds from the Spreadsheet. It could also be that I am insane. This particular experience did remind, rather unpleasantly, that I don’t fully understand how nested JSON parsing works. I ended up in the right place but only through about 40 minutes of slamming my head into various walls of misunderstanding.
I also need to spend a bit of time applying the DRY concept to this bloated mess.
<body > <div class="container-fluid"> <div class="row bar"> <div class="col-md-offset-2 col-md-10 col-sm-12"> <h2>FREE SPEECH?</h2><!-- HEADER --> </div> </div> <script type="text/javascript"> var url = "https://spreadsheets.google.com/feeds/list/1onuK8HASnYWKR5qapphhL-yCxzWWOFzR0VhJ_9zZD4E/1/public/values?alt=json"; $.getJSON(url, function(data) { var html = ''; var entry = data.feed.entry; var upperLimit = entry.length; var randSpeaker = Math.floor(Math.random() * upperLimit); var randLocation = Math.floor(Math.random() * upperLimit); var randSpeech = Math.floor(Math.random() * upperLimit); var randRestrictor = Math.floor(Math.random() * upperLimit); var randRestriction = Math.floor(Math.random() * upperLimit); html += '<div class="item"><div class="lead">The Person: </div><div class="speaker var ">' + entry[randSpeaker]['gsx$speaker']['$t'] + '</div></div>'; html += '<div class="item"><div class="lead">The Location: </div><div class="location var ">' + entry[randLocation]['gsx$location']['$t'] + '</div></div>'; html += '<div class="item"><div class="lead">The Speech: </div><div class="speech var ">' + entry[randSpeech]['gsx$speech']['$t'] + '</div></div>'; html += '<div class="item"><div class="lead">The Restrictor: </div><div class="restrictor var ">' + entry[randRestrictor]['gsx$restrictor']['$t'] + '</div></div>'; html += '<div class="item"><div class="lead">The Restriction: </div><div class="restriction var ">' + entry[randRestriction]['gsx$restriction']['$t'] + '</div></div>'; $('.speech').append(html); }); </script> <div class="row"> <div class="speech col-md-offset-2 col-md-8 col-sm-12"></div> </div> <div class="row"> <a href="https://rampages.us/extras/freespeech/"><div class="button">New Scenario</div></a> </div> </body>