Created
August 4, 2020 09:56
-
-
Save adrianhajdin/bab49eac7dcf9c095fce37ae1167dd87 to your computer and use it in GitHub Desktop.
Alan Studio Code Materials
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
intent('What does this app do?', 'What can I do here?', | |
reply('This is a news project.')); | |
const API_KEY = '7bdfb1b10aca41c6becea47611b7c35a'; | |
let savedArticles = []; | |
// News by Source | |
intent('Give me the news from $(source* (.*))', (p) => { | |
let NEWS_API_URL = `https://newsapi.org/v2/top-headlines?apiKey=${API_KEY}`; | |
if(p.source.value) { | |
NEWS_API_URL = `${NEWS_API_URL}&sources=${p.source.value.toLowerCase().split(" ").join('-')}` | |
} | |
api.request(NEWS_API_URL, (error, response, body) => { | |
const { articles } = JSON.parse(body); | |
if(!articles.length) { | |
p.play('Sorry, please try searching for news from a different source'); | |
return; | |
} | |
savedArticles = articles; | |
p.play({ command: 'newHeadlines', articles }); | |
p.play(`Here are the (latest|recent) ${p.source.value}.`); | |
p.play('Would you like me to read the headlines?'); | |
p.then(confirmation); | |
}); | |
}) | |
// News by Term | |
intent('what\'s up with $(term* (.*))', (p) => { | |
let NEWS_API_URL = `https://newsapi.org/v2/everything?apiKey=${API_KEY}`; | |
if(p.term.value) { | |
NEWS_API_URL = `${NEWS_API_URL}&q=${p.term.value}` | |
} | |
api.request(NEWS_API_URL, (error, response, body) => { | |
const { articles } = JSON.parse(body); | |
if(!articles.length) { | |
p.play('Sorry, please try searching for something else.'); | |
return; | |
} | |
savedArticles = articles; | |
p.play({ command: 'newHeadlines', articles }); | |
p.play(`Here are the (latest|recent) articles on ${p.term.value}.`); | |
p.play('Would you like me to read the headlines?'); | |
p.then(confirmation); | |
}); | |
}) | |
// News by Categories | |
const CATEGORIES = ['business', 'entertainment', 'general', 'health', 'science', 'sports', 'technology']; | |
const CATEGORIES_INTENT = `${CATEGORIES.map((category) => `${category}~${category}`).join('|')}|`; | |
intent(`(show|what is|tell me|what's|what are|what're|read) (the|) (recent|latest|) $(N news|headlines) (in|about|on|) $(C~ ${CATEGORIES_INTENT})`, | |
`(read|show|get|bring me|give me) (the|) (recent|latest) $(C~ ${CATEGORIES_INTENT}) $(N news|headlines)`, (p) => { | |
let NEWS_API_URL = `https://newsapi.org/v2/top-headlines?apiKey=${API_KEY}&country=us`; | |
if(p.C.value) { | |
NEWS_API_URL = `${NEWS_API_URL}&category=${p.C.value}` | |
} | |
api.request(NEWS_API_URL, (error, response, body) => { | |
const { articles } = JSON.parse(body); | |
if(!articles.length) { | |
p.play('Sorry, please try searching for a different category.'); | |
return; | |
} | |
savedArticles = articles; | |
p.play({ command: 'newHeadlines', articles }); | |
if(p.C.value) { | |
p.play(`Here are the (latest|recent) articles on ${p.C.value}.`); | |
} else { | |
p.play(`Here are the (latest|recent) news`); | |
} | |
p.play('Would you like me to read the headlines?'); | |
p.then(confirmation); | |
}); | |
}); | |
const confirmation = context(() => { | |
intent('yes', async (p) => { | |
for(let i = 0; i < savedArticles.length; i++){ | |
p.play({ command: 'highlight', article: savedArticles[i]}); | |
p.play(`${savedArticles[i].title}`); | |
} | |
}) | |
intent('no', (p) => { | |
p.play('Sure, sounds good to me.') | |
}) | |
}) | |
intent('open (the|) (article|) (number|) $(number* (.*))', (p) => { | |
if(p.number.value) { | |
p.play({ command:'open', number: p.number.value, articles: savedArticles}) | |
} | |
}) | |
intent('(go|) back', (p) => { | |
p.play('Sure, going back'); | |
p.play({ command: 'newHeadlines', articles: []}) | |
}) | |
zafair122
commented
Oct 1, 2023
via email
Which one is working?
…On Fri, 28 Apr 2023 at 10:07, Anshika garg ***@***.***> wrote:
***@***.**** commented on this gist.
------------------------------
thanks this is working
—
Reply to this email directly, view it on GitHub
<https://gist.github.com/adrianhajdin/bab49eac7dcf9c095fce37ae1167dd87#gistcomment-4552254>
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AN5OL74PCA5KOJ6QSVJRJLTXDP2MFBFKMF2HI4TJMJ2XIZLTSKBKK5TBNR2WLJDHNFZXJJDOMFWWLK3UNBZGKYLEL52HS4DFQKSXMYLMOVS2I5DSOVS2I3TBNVS3W5DIOJSWCZC7OBQXE5DJMNUXAYLOORPWCY3UNF3GS5DZVRZXKYTKMVRXIX3UPFYGLK2HNFZXIQ3PNVWWK3TUUZ2G64DJMNZZDAVEOR4XAZNEM5UXG5FFOZQWY5LFVEYTANBWHA4DGNZUU52HE2LHM5SXFJTDOJSWC5DF>
.
You are receiving this email because you commented on the thread.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>
.
Here is the fully working code. The only thing I changed is one intent from "Give me the latest news" to "Show me the latest news", don't forget to change that in the front end. The previous code did not work because the newsapi changed their endpoints.
Here is the link to repository where the code is https://github.com/ilija-mihajlovic/alan-ai-working-code
thanks this is working.but still have some issues.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment