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:
- The region must have #OpenData citations searchable by license # (obvs).
- The module must export an object named Region that implements the IRegion interface (see HowsMyDriving-Utils project).
- The Region.name property must be unique among existing regions consumed by HowsMyDrivingWA project.
- Implement the GetCitationsByPlate and ProcessCitationsForRequest methods.
- Write unit tests and make sure they are 100% passing.
- Test it within an actual Twitter bot (you can remix this Glitch project).
- Submit a pull request to HowsMyDrivingWA project.
- Provide technical support if bugs are found in your module.
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 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).
{ REGIONS="howsmydriving-seattle, howsmydriving-dummy, your-new-region"}
How to contribute: CONTRIBUTING.md.
Find this useful? Buy @GlenBikes a coffee
Powered by Glitch
\ ゜o゜)ノ