UNPKG

howsmydriving-nyc

Version:
77 lines (60 loc) 3.09 kB
Region plugin template for @HowsMyDrivingWA to add a new city/region. ===================================================================== @HowsMyDrivingWA supports plug-in npm modules to add additional cities/regions. This project is a template that you can copy and add your code to in order to implement your favorite region. Requirements: 1. The region must have #OpenData citations searchable by license # (obvs). 2. The module must export an object named Region that implements the [IRegion interface](https://glitch.com/edit/#!/howsmydriving-utils?path=src/interfaces/iregion.ts:4:0) (see [HowsMyDriving-Utils project](https://glitch.com/~howsmydriving-utils)). 3. The Region.name property must be unique among existing regions consumed by [HowsMyDrivingWA project](https://glitch.com/~howsmydrivingwa). 4. Implement the GetCitationsByPlate and ProcessCitationsForRequest methods. 5. Write unit tests and make sure they are 100% passing. 6. Test it within an actual Twitter bot (you can remix [this Glitch project](https://glitch.com/~howsmydrivingwa)). 7. Submit a pull request to [HowsMyDrivingWA project](https://glitch.com/~howsmydrivingwa). 8. Provide technical support if bugs are found in your module. ```TypeScript export class NYCRegion extends Region { constructor(name: string) { super(name); } GetCitationsByPlate(plate: string, state: string): Promise<Array<Citation>> { return new Promise<Array<Citation>>((resolve, reject) => { // Your code to get the citations and return as an array. // // The objects you return must implement ICitation but can have // any number of additional properties. // Note: AWS DynamoDB is currently used as the store which means that // none of the properties of your returned objects can be undefined // or empty strings because the world's richest man seems to think // that makes sense. }); } ProcessCitationsForRequest( citations: ICitation[], query_count: number ): Array<string> let tweets: Array<string> = []; // Your code to create the list of tweets you want posted. // It is OK for any or all of the strings to be > 280 chars // in length. They will be split into multiple tweets on a line // break if one exists (if not, it will be split at 280 chars). // Return the strings in the order they should be tweeted. return tweets; } } ``` Adding a new region module to HowsMyDriving .env file (you'll need [@GlenBikes](http://twitter.com/GlenBikes) to invite you to the project as a collaborator): The string you give for the region is the npm module name (i.e. what you'd specify in an import statement to import your project). ```JSON { REGIONS="howsmydriving-seattle, howsmydriving-dummy, your-new-region" } ``` How to contribute: [CONTRIBUTING.md](https://glitch.com/edit/#!/howsmydriving-nyc?path=CONTRIBUTING.md:1:0). Find this useful? [Buy @GlenBikes a coffee](https://www.buymeacoffee.com/GlenBikes) **Powered by [Glitch](https://glitch.com)** \ ゜o゜)ノ