{"id":20425972,"url":"https://github.com/dfischer/akismet","last_synced_at":"2025-04-12T19:04:28.229Z","repository":{"id":20857529,"uuid":"24144296","full_name":"dfischer/akismet","owner":"dfischer","description":"Meteor wrapper for NPM akismet-api","archived":false,"fork":false,"pushed_at":"2014-09-17T12:54:06.000Z","size":136,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-14T21:51:05.779Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dfischer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-17T12:44:59.000Z","updated_at":"2019-11-20T08:15:35.000Z","dependencies_parsed_at":"2022-08-21T20:40:54.485Z","dependency_job_id":null,"html_url":"https://github.com/dfischer/akismet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfischer%2Fakismet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfischer%2Fakismet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfischer%2Fakismet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfischer%2Fakismet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dfischer","download_url":"https://codeload.github.com/dfischer/akismet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224742384,"owners_count":17362232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T07:14:51.167Z","updated_at":"2024-11-15T07:14:51.642Z","avatar_url":"https://github.com/dfischer.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"akismet\n=======\n\nMeteor wrapper for NPM akismet-api\n\ndefine a settings.yml file for you to run with Meteor to set settings.\n\n```\n{\n  \"Akismet\": {\n    \"key\": \"required\",\n    \"blog\": \"required\"\n  }\n}\n```\n\n`meteor --settings settings.json`\n\nThen hook into the api as you see fit.\n\nExposed `verifyKey`, `checkSpam`, `submitSpam`, `submitHam` as the following wrapped methods:\n\n`akismetVerifyKey`, `akismetCheckSpam`, `akismetSubmitSpam`, `akismetSubmitHam`\n\nJust hook into those as you would in your comments code, e.g:\n\n```\n// use comment object values somewhere\nvar checkSpam = {\n  user_ip : comment.user_ip,\n  user_agent : comment.user_agent,\n  referrer : comment.referrer,\n  comment_type : 'comment',\n  comment_author : comment.author,\n  comment_content : comment.body\n};\n\nvar isSpam = Meteor.call('akismetCheckSpam', checkSpam); // true for spam\n\nif(isSpam) {\n  comment.isSpam = true;\n  return Comments.insert(comment);\n} else {\n  Posts.update(comment.postId, {\n    $inc: { commentsCount: 1 }\n  });\n  return Comments.insert(comment);\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfischer%2Fakismet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdfischer%2Fakismet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfischer%2Fakismet/lists"}