From 7c922e9c83652911fc75466baf3718aa6ec8573d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 15 Oct 2019 15:21:21 +0000 Subject: [PATCH] python: Implement lookup function for countries Signed-off-by: Michael Tremer --- src/python/database.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/python/database.c b/src/python/database.c index 48023b0..ea476c8 100644 --- a/src/python/database.c +++ b/src/python/database.c @@ -21,6 +21,7 @@ #include "locationmodule.h" #include "as.h" +#include "country.h" #include "database.h" #include "network.h" @@ -120,6 +121,24 @@ static PyObject* Database_get_as(DatabaseObject* self, PyObject* args) { return NULL; } +static PyObject* Database_get_country(DatabaseObject* self, PyObject* args) { + const char* country_code = NULL; + + if (!PyArg_ParseTuple(args, "s", &country_code)) + return NULL; + + struct loc_country* country; + int r = loc_database_get_country(self->db, &country, country_code); + if (r) { + Py_RETURN_NONE; + } + + PyObject* obj = new_country(&CountryType, country); + loc_country_unref(country); + + return obj; +} + static PyObject* Database_lookup(DatabaseObject* self, PyObject* args) { struct loc_network* network = NULL; const char* address = NULL; @@ -231,6 +250,12 @@ static struct PyMethodDef Database_methods[] = { METH_VARARGS, NULL, }, + { + "get_country", + (PyCFunction)Database_get_country, + METH_VARARGS, + NULL, + }, { "lookup", (PyCFunction)Database_lookup, -- 2.47.3