![]() Her recent albums span an emotional register that begins at “personal” and ends somewhere around “crushingly confessional,” songs she says arrived via some alchemy of emotional messiness, Chinese takeout, and serious dishing. Welcome.įor a while now, one could say this has been a signature of Gomez’s appeal, this sort of wide-armed embrace of the human condition. When she returns, she plops into a white leather salon-style chair and launches into a tale of how, just prior to my arrival, she’d been eating an acai bowl only to realize that “my entire face was purple.” The general vibe here is clear: We are human. Gomez hugs me anyway, then scurries off down a hallway to confer with a young woman about the air conditioning. By this point, I may be perspiring a bit. ![]() She says this is true both “literally and figuratively,” and she says it while I am rolling my own literal baggage across the threshold of her Los Angeles home, having first rolled it past the security gate, then up the verdant hill, then along the glimmering pool, before depositing it in a sort of glam room with a flowery rug and a view of the patio through open glass doors. See the contributing and development guide for details on working on this project.Selena Gomez has a lot of baggage. ![]() It's unlikely I'll change things much (because time, work, etc), but I'm interested in hearing your thoughts. This architecture isn't perfect, and I'm open to criticism and suggestions. This re-publishes failed tasks (stored in Redis) and attempts to set reminders for them. These are utility functions used only once: when verifying the webhook for Twitter (during setup). Settings are stored in redis, with the user's Twitter handle forming part of the key. HTTP handler that the form submits to when you update your settings on the website (set a timezone or enable/disable push notifications). This function fetches your profile info from the Twitter API and creates a session for you on the website. The URL Twitter redirects you to after you complete the sign in process. It retrieves the necessary tokens and passes on to Twitter API to start the sign in process. When you click "Sign in With Twitter" on the website, you're redirected to the URL of this function. Maybe I wasn't sure if I could make path parameters optional. Why are getHomePage and getPage separate, you ask? I honestly do not remember. Then it iterates over them and dispatches any tweets or push notifications. Assuming the time is, 11:23, it will check for a Redis key, which should hold all the reminders for that time. This function runs once every minute (this means reminders can only have minute precision) and checks for any reminders scheduled for the current time. SO when a user replies cancel to a Tweet, we look up the ID of the tweet they're replying to, fetch their original reminder Tweet from there, and then delete th reminder from that Tweet from the datetime-key containing it in Redis. If it finds any requests, it sets a reminder by storing the relevant data (tweet, author, etc) in Redis, with the Redis key being the timestamp (ISO8601-can't remmber why I went with that instead of the UNIX timestamp, but possibly human-readability).Ĭancellations (reply "cancel" to the bot's reply) work by storing a Redis entry with the reminder request tweet ID as value and the ID of the bot's response as key. This function iterates through all the mentions and looks for any possible reminder requests (or reminder cancellations). Whenever anyone mentions the bot (or likes or retweets a tweet by the bot), Twitter hits this URL with a payload containing details of the events. This function serves as the webhook registered to Twitter's Accout Activity API. The bot uses a number of AWS Lambda functions that work in tandem: handleAccountActivity Chrono for parsing dates/times from text.Firebase Messaging for push notifications.AWS Lambda with the Serverless Framework.Better yet, sign in on and set your timezone. Note that the bot will assume all absolute times are in UTC, so if you want to specify an absolute time, you need to specify a timezone if you're not in UTC/GMT. Of course, that's not all you can do! You can set reminders for your own tweets (New Year's Resolutions, anyone? □), too, for instance. But you likely won't remember by that time. In three years, humans will have established a colony on Uranus.Īnd of course, naturally, you want to check back in three years to see if he was right.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |