Browse Source

color and rating

PYADPT-55
Volker Birk 9 years ago
parent
commit
1583c59090
  1. 20
      src/identity.cc
  2. 3
      src/identity.hh
  3. 20
      src/message.cc
  4. 2
      src/message.hh
  5. 2
      src/message_api.cc
  6. 2
      src/message_api.hh
  7. 12
      src/pEpmodule.cc

20
src/identity.cc

@ -1,7 +1,10 @@
#include "Identity.hh" #include "Identity.hh"
#include "pEpmodule.hh"
#include "message_api.hh"
#include <typeinfo> #include <typeinfo>
#include <sstream> #include <sstream>
#include <pEp/identity_list.h> #include <pEp/identity_list.h>
#include <pEp/message_api.h>
namespace pEp { namespace pEp {
namespace PythonAdapter { namespace PythonAdapter {
@ -111,6 +114,23 @@ namespace pEp {
return _ident->lang; return _ident->lang;
} }
int Identity::rating()
{
if (!(_ident->address))
throw invalid_argument("address must be given");
PEP_rating rating = PEP_rating_undefined;
PEP_STATUS status = identity_rating(session, _ident, &rating);
_throw_status(status);
return (int) rating;
}
int Identity::color()
{
return _color(rating());
}
Identity identity_attr(pEp_identity *&ident) Identity identity_attr(pEp_identity *&ident)
{ {
pEp_identity *_dup; pEp_identity *_dup;

3
src/identity.hh

@ -51,6 +51,9 @@ namespace pEp {
identity_flags_t flags() { return _ident->flags; } identity_flags_t flags() { return _ident->flags; }
void flags(identity_flags_t flags) { _ident->flags = flags; } void flags(identity_flags_t flags) { _ident->flags = flags; }
int rating();
int color();
}; };
Identity identity_attr(pEp_identity *&ident); Identity identity_attr(pEp_identity *&ident);

20
src/message.cc

@ -6,6 +6,7 @@
#include <stdexcept> #include <stdexcept>
#include <sstream> #include <sstream>
#include <pEp/mime.h> #include <pEp/mime.h>
#include <pEp/message_api.h>
namespace pEp { namespace pEp {
namespace PythonAdapter { namespace PythonAdapter {
@ -294,6 +295,25 @@ namespace pEp {
tuple Message::decrypt() { tuple Message::decrypt() {
return decrypt_message(*this); return decrypt_message(*this);
} }
int Message::outgoing_rating()
{
if (!(_msg && _msg->from))
throw invalid_argument("from must be a valid Identity()");
if (!(_msg && _msg->dir == PEP_dir_outgoing))
throw invalid_argument("Message.dir must be outgoing");
PEP_rating rating = PEP_rating_undefined;
PEP_STATUS status = outgoing_message_rating(session, _msg, &rating);
_throw_status(status);
return (int) rating;
}
int Message::outgoing_color()
{
return _color(outgoing_rating());
}
} }
} }

2
src/message.hh

@ -127,6 +127,8 @@ namespace pEp {
Message encrypt(list extra); Message encrypt(list extra);
Message encrypt(); Message encrypt();
tuple decrypt(); tuple decrypt();
int outgoing_rating();
int outgoing_color();
}; };
} }
} }

2
src/message_api.cc

@ -56,7 +56,7 @@ namespace pEp {
return make_tuple(dst, keylist, rating, flags); return make_tuple(dst, keylist, rating, flags);
} }
int color_from_rating(int rating) int _color(int rating)
{ {
return (int) ::color_from_rating((PEP_rating) rating); return (int) ::color_from_rating((PEP_rating) rating);
} }

2
src/message_api.hh

@ -7,7 +7,7 @@ namespace pEp {
Message encrypt_message(Message src, list extra = list(), Message encrypt_message(Message src, list extra = list(),
int enc_format = 4, int flags = 0); int enc_format = 4, int flags = 0);
tuple decrypt_message(Message src); tuple decrypt_message(Message src);
int color_from_rating(int rating); int _color(int rating);
} }
} }

12
src/pEpmodule.cc

@ -90,7 +90,9 @@ BOOST_PYTHON_MODULE(pEp)
"true if own identity, false otherwise") "true if own identity, false otherwise")
.add_property("flags", (identity_flags_t(Identity::*)()) &Identity::flags, .add_property("flags", (identity_flags_t(Identity::*)()) &Identity::flags,
(void(Identity::*)(identity_flags_t)) &Identity::flags, (void(Identity::*)(identity_flags_t)) &Identity::flags,
"flags (p≡p internal)"); "flags (p≡p internal)")
.add_property("rating", &Identity::rating, "rating of Identity")
.add_property("color", &Identity::color, "color of Identity");
identity_class.attr("PEP_OWN_USERID") = "pEp_own_userId"; identity_class.attr("PEP_OWN_USERID") = "pEp_own_userId";
@ -182,7 +184,9 @@ BOOST_PYTHON_MODULE(pEp)
.def("encrypt", (Message(Message::*)(list))&Message::encrypt, "encrypt message") .def("encrypt", (Message(Message::*)(list))&Message::encrypt, "encrypt message")
.def("encrypt", (Message(Message::*)(list,int))&Message::encrypt, "encrypt message") .def("encrypt", (Message(Message::*)(list,int))&Message::encrypt, "encrypt message")
.def("encrypt", (Message(Message::*)(list,int,int))&Message::encrypt, "encrypt message") .def("encrypt", (Message(Message::*)(list,int,int))&Message::encrypt, "encrypt message")
.def("decrypt", &Message::decrypt, "decrypt message"); .def("decrypt", &Message::decrypt, "decrypt message")
.add_property("outgoing_rating", &Message::outgoing_rating, "rating outgoing message will have")
.add_property("outgoing_color", &Message::outgoing_color, "color outgoing message will have");
// basic API // basic API
@ -191,9 +195,7 @@ BOOST_PYTHON_MODULE(pEp)
// message API // message API
def("encrypt_message", &encrypt_message, "encrypt message in memory"); def("color", &_color, "calculate color value out of rating");
def("decrypt_message", &decrypt_message, "decrypt message in memory");
def("color_from_rating", &color_from_rating, "calculate color value");
// key sync API // key sync API

Loading…
Cancel
Save