Skip to content

Nametoid map #40

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/properties/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ There are **1078 properties**, I want to be able to:

[Protocol Buffers](https://developers.google.com/protocol-buffers/docs/proto3) is a language-neutral, platform-neutral, extensible mechanism for serializing structured data. The protocol buffer language is a language for specifying the schema for structured data. This schema is compiled into language specific bindings.

![Explanation](https://developers.google.com/static/protocol-buffers/docs/images/protocol-buffers-concepts.png)
![Explanation](https://protobuf.dev/images/protocol-buffers-concepts.png)

## Implementation

Expand Down
4 changes: 2 additions & 2 deletions cmd/properties/generate.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ func download() (destinationFilename string, err error) {
Timeout: 60 * time.Second,
}

response, err := httpClientWithTimeout.Get("https://interoperability.blob.core.windows.net/files/MS-OXPROPS/%5bMS-OXPROPS%5d-210817.docx")
response, err := httpClientWithTimeout.Get("https://msopenspecs.azureedge.net/files/MS-OXPROPS/%5bMS-OXPROPS%5d-210817.docx")

if err != nil {
return "", errors.WithStack(err)
Expand Down Expand Up @@ -393,7 +393,7 @@ func getPropertyIDFromLine(line []byte, propertyName string) (uint32, error) {
return 0, errors.WithStack(fmt.Errorf("failed to find property ID prefix for: %s", propertyName))
}

propertyID, err := strconv.ParseUint(string(propertyIDHex), propertyIDBitSize, propertyIDBitSize)
propertyID, err := strconv.ParseUint(string(propertyIDHex), 16, propertyIDBitSize)

if err != nil {
return 0, errors.WithStack(fmt.Errorf("failed to parse property ID hex to int: %w", err))
Expand Down
702 changes: 351 additions & 351 deletions cmd/properties/properties.csv

Large diffs are not rendered by default.

184 changes: 92 additions & 92 deletions cmd/properties/protobufs/appointment.proto

Large diffs are not rendered by default.

120 changes: 60 additions & 60 deletions cmd/properties/protobufs/contact.proto
Original file line number Diff line number Diff line change
Expand Up @@ -21,125 +21,125 @@ option go_package = "github.com/mooijtech/go-pst;properties";

message Contact {
// Specifies the state of the electronic addresses of the contact and represents a set of bit flags.
optional int32 address_book_provider_array_type = 1; // @gotags: msg:"2622173,omitempty"
optional int32 address_book_provider_array_type = 1; // @gotags: msg:"328093,omitempty"
// Specifies the country code portion of the mailing address of the contact.
optional string address_country_code = 3; // @gotags: msg:"26257331,omitempty"
optional string address_country_code = 3; // @gotags: msg:"3298931,omitempty"
// Specifies to the application whether to create a Journal object for each action associated with this Contact object.
optional bool auto_log = 5; // @gotags: msg:"26221311,omitempty"
optional bool auto_log = 5; // @gotags: msg:"3280511,omitempty"
// Specifies the birthday of a contact.
optional int64 birthday_local = 7; // @gotags: msg:"26257464,omitempty"
optional int64 birthday_local = 7; // @gotags: msg:"3299064,omitempty"
// Specifies the character set used for a Contact object.
optional int32 contact_character_set = 10; // @gotags: msg:"2622113,omitempty"
optional int32 contact_character_set = 10; // @gotags: msg:"328033,omitempty"
// Specifies the GUID of the GAL contact to which the duplicate contact is linked.
optional uint64 contact_link_global_address_list_link_id = 14; // @gotags: msg:"26260072,omitempty"
optional uint64 contact_link_global_address_list_link_id = 14; // @gotags: msg:"3300072,omitempty"
// Specifies the state of the linking between the GAL contact and the duplicate contact.
optional int32 contact_link_global_address_list_link_state = 15; // @gotags: msg:"2625983,omitempty"
optional int32 contact_link_global_address_list_link_state = 15; // @gotags: msg:"329983,omitempty"
//
optional string contact_link_name = 17; // @gotags: msg:"26752631,omitempty"
optional string contact_link_name = 17; // @gotags: msg:"3418231,omitempty"
// Contains text used to add custom text to a business card representation of a Contact object.
optional string contact_user_field1 = 20; // @gotags: msg:"26228731,omitempty"
optional string contact_user_field1 = 20; // @gotags: msg:"3284731,omitempty"
// Contains text used to add custom text to a business card representation of a Contact object.
optional string contact_user_field2 = 21; // @gotags: msg:"26230431,omitempty"
optional string contact_user_field2 = 21; // @gotags: msg:"3284831,omitempty"
// Contains text used to add custom text to a business card representation of a Contact object.
optional string contact_user_field3 = 22; // @gotags: msg:"26230531,omitempty"
optional string contact_user_field3 = 22; // @gotags: msg:"3284931,omitempty"
// Contains text used to add custom text to a business card representation of a Contact object.
optional string contact_user_field4 = 23; // @gotags: msg:"26230631,omitempty"
optional string contact_user_field4 = 23; // @gotags: msg:"3285031,omitempty"
// This property is ignored by the server and is set to an empty string by the client.
optional string department = 24; // @gotags: msg:"26217631,omitempty"
optional string department = 24; // @gotags: msg:"3278431,omitempty"
// Specifies the 32-bit cyclic redundancy check (CRC) polynomial checksum, as specified in [ISO/IEC8802-3], calculated on the value of the PidLidDistributionListMembers property (section 2.96).
optional int32 distribution_list_checksum = 25; // @gotags: msg:"2622843,omitempty"
optional int32 distribution_list_checksum = 25; // @gotags: msg:"328443,omitempty"
// Specifies the name of the personal distribution list.
optional string distribution_list_name = 27; // @gotags: msg:"26230731,omitempty"
optional string distribution_list_name = 27; // @gotags: msg:"3285131,omitempty"
// Specifies the address type of an electronic address.
optional string email1_address_type = 30; // @gotags: msg:"26240231,omitempty"
optional string email1_address_type = 30; // @gotags: msg:"3289831,omitempty"
// Specifies the user-readable display name for the email address.
optional string email1_display_name = 31; // @gotags: msg:"26240031,omitempty"
optional string email1_display_name = 31; // @gotags: msg:"3289631,omitempty"
// Specifies the email address of the contact.
optional string email1_email_address = 32; // @gotags: msg:"26240331,omitempty"
optional string email1_email_address = 32; // @gotags: msg:"3289931,omitempty"
// Specifies the SMTP email address that corresponds to the email address for the Contact object.
optional string email1_original_display_name = 33; // @gotags: msg:"26240431,omitempty"
optional string email1_original_display_name = 33; // @gotags: msg:"3290031,omitempty"
// Specifies the address type of the electronic address.
optional string email2_address_type = 35; // @gotags: msg:"26243431,omitempty"
optional string email2_address_type = 35; // @gotags: msg:"3291431,omitempty"
// Specifies the user-readable display name for the email address.
optional string email2_display_name = 36; // @gotags: msg:"26243231,omitempty"
optional string email2_display_name = 36; // @gotags: msg:"3291231,omitempty"
// Specifies the email address of the contact.
optional string email2_email_address = 37; // @gotags: msg:"26243531,omitempty"
optional string email2_email_address = 37; // @gotags: msg:"3291531,omitempty"
// Specifies the SMTP email address that corresponds to the email address for the Contact object.
optional string email2_original_display_name = 38; // @gotags: msg:"26243631,omitempty"
optional string email2_original_display_name = 38; // @gotags: msg:"3291631,omitempty"
// Specifies the address type of the electronic address.
optional string email3_address_type = 40; // @gotags: msg:"26246631,omitempty"
optional string email3_address_type = 40; // @gotags: msg:"3293031,omitempty"
// Specifies the user-readable display name for the email address.
optional string email3_display_name = 41; // @gotags: msg:"26246431,omitempty"
optional string email3_display_name = 41; // @gotags: msg:"3292831,omitempty"
// Specifies the email address of the contact.
optional string email3_email_address = 42; // @gotags: msg:"26246731,omitempty"
optional string email3_email_address = 42; // @gotags: msg:"3293131,omitempty"
// Specifies the SMTP email address that corresponds to the email address for the Contact object.
optional string email3_original_display_name = 43; // @gotags: msg:"26246831,omitempty"
optional string email3_original_display_name = 43; // @gotags: msg:"3293231,omitempty"
// Contains the string value "FAX".
optional string fax1_address_type = 45; // @gotags: msg:"26249831,omitempty"
optional string fax1_address_type = 45; // @gotags: msg:"3294631,omitempty"
// Contains a user-readable display name, followed by the "@" character, followed by a fax number.
optional string fax1_email_address = 46; // @gotags: msg:"26249931,omitempty"
optional string fax1_email_address = 46; // @gotags: msg:"3294731,omitempty"
// Contains the same value as the PidTagNormalizedSubject property (section 2.812).
optional string fax1_original_display_name = 47; // @gotags: msg:"26250031,omitempty"
optional string fax1_original_display_name = 47; // @gotags: msg:"3294831,omitempty"
// Contains the string value "FAX".
optional string fax2_address_type = 49; // @gotags: msg:"26253031,omitempty"
optional string fax2_address_type = 49; // @gotags: msg:"3296231,omitempty"
// Contains a user-readable display name, followed by the "@" character, followed by a fax number.
optional string fax2_email_address = 50; // @gotags: msg:"26253131,omitempty"
optional string fax2_email_address = 50; // @gotags: msg:"3296331,omitempty"
// Contains the same value as the PidTagNormalizedSubject property (section 2.812).
optional string fax2_original_display_name = 51; // @gotags: msg:"26253231,omitempty"
optional string fax2_original_display_name = 51; // @gotags: msg:"3296431,omitempty"
// Contains the string value "FAX".
optional string fax3_address_type = 53; // @gotags: msg:"26256231,omitempty"
optional string fax3_address_type = 53; // @gotags: msg:"3297831,omitempty"
// Contains a user-readable display name, followed by the "@" character, followed by a fax number.
optional string fax3_email_address = 54; // @gotags: msg:"26256331,omitempty"
optional string fax3_email_address = 54; // @gotags: msg:"3297931,omitempty"
// Contains the same value as the PidTagNormalizedSubject property (section 2.812).
optional string fax3_original_display_name = 55; // @gotags: msg:"26256431,omitempty"
optional string fax3_original_display_name = 55; // @gotags: msg:"3298031,omitempty"
// Specifies the name under which to file a contact when displaying a list of contacts.
optional string file_under = 57; // @gotags: msg:"26214931,omitempty"
optional string file_under = 57; // @gotags: msg:"3277331,omitempty"
// Specifies how to generate and recompute the value of the PidLidFileUnder property (section 2.132) when other contact name properties change.
optional int32 file_under_id = 58; // @gotags: msg:"2621503,omitempty"
optional int32 file_under_id = 58; // @gotags: msg:"327743,omitempty"
// Specifies a URL path from which a client can retrieve free/busy status information for the contact.
optional string free_busy_location = 60; // @gotags: msg:"26256831,omitempty"
optional string free_busy_location = 60; // @gotags: msg:"3298431,omitempty"
// Specifies whether the attachment has a picture.
optional bool has_picture = 61; // @gotags: msg:"26218111,omitempty"
optional bool has_picture = 61; // @gotags: msg:"3278911,omitempty"
// Specifies the complete address of the home address of the contact.
optional string home_address = 62; // @gotags: msg:"26218631,omitempty"
optional string home_address = 62; // @gotags: msg:"3279431,omitempty"
// Specifies the country code portion of the home address of the contact.
optional string home_address_country_code = 63; // @gotags: msg:"26257031,omitempty"
optional string home_address_country_code = 63; // @gotags: msg:"3298631,omitempty"
// Specifies the business webpage URL of the contact.
optional string html = 64; // @gotags: msg:"26221931,omitempty"
optional string html = 64; // @gotags: msg:"3281131,omitempty"
// Specifies the instant messaging address of the contact.
optional string instant_messaging_address = 65; // @gotags: msg:"26233831,omitempty"
optional string instant_messaging_address = 65; // @gotags: msg:"3286631,omitempty"
// Specifies whether the contact is linked to other contacts.
optional bool is_contact_linked = 66; // @gotags: msg:"26259211,omitempty"
optional bool is_contact_linked = 66; // @gotags: msg:"3299211,omitempty"
// Specifies the complete address of the other address of the contact.
optional string other_address = 67; // @gotags: msg:"26218831,omitempty"
optional string other_address = 67; // @gotags: msg:"3279631,omitempty"
// Specifies the country code portion of the other address of the contact.
optional string other_address_country_code = 68; // @gotags: msg:"26257231,omitempty"
optional string other_address_country_code = 68; // @gotags: msg:"3298831,omitempty"
// Specifies which physical address is the mailing address for this contact.
optional int32 postal_address_id = 69; // @gotags: msg:"2622103,omitempty"
optional int32 postal_address_id = 69; // @gotags: msg:"328023,omitempty"
// Specifies the wedding anniversary of the contact, at midnight in the client's local time zone, and is saved without any time zone conversions.
optional int64 wedding_anniversary_local = 71; // @gotags: msg:"26257564,omitempty"
optional int64 wedding_anniversary_local = 71; // @gotags: msg:"3299164,omitempty"
// Specifies the complete address of the work address of the contact.
optional string work_address = 72; // @gotags: msg:"26218731,omitempty"
optional string work_address = 72; // @gotags: msg:"3279531,omitempty"
// Specifies the city or locality portion of the work address of the contact.
optional string work_address_city = 73; // @gotags: msg:"26227831,omitempty"
optional string work_address_city = 73; // @gotags: msg:"3283831,omitempty"
// Specifies the country or region portion of the work address of the contact.
optional string work_address_country = 74; // @gotags: msg:"26228131,omitempty"
optional string work_address_country = 74; // @gotags: msg:"3284131,omitempty"
// Specifies the country code portion of the work address of the contact.
optional string work_address_country_code = 75; // @gotags: msg:"26257131,omitempty"
optional string work_address_country_code = 75; // @gotags: msg:"3298731,omitempty"
// Specifies the postal code (ZIP code) portion of the work address of the contact.
optional string work_address_postal_code = 76; // @gotags: msg:"26228031,omitempty"
optional string work_address_postal_code = 76; // @gotags: msg:"3284031,omitempty"
// Specifies the post office box portion of the work address of the contact.
optional string work_address_post_office_box = 77; // @gotags: msg:"26228231,omitempty"
optional string work_address_post_office_box = 77; // @gotags: msg:"3284231,omitempty"
// Specifies the state or province portion of the work address of the contact.
optional string work_address_state = 78; // @gotags: msg:"26227931,omitempty"
optional string work_address_state = 78; // @gotags: msg:"3283931,omitempty"
// Specifies the street portion of the work address of the contact.
optional string work_address_street = 79; // @gotags: msg:"26227731,omitempty"
optional string work_address_street = 79; // @gotags: msg:"3283731,omitempty"
// Specifies the phonetic pronunciation of the company name of the contact.
optional string yomi_company_name = 80; // @gotags: msg:"26222231,omitempty"
optional string yomi_company_name = 80; // @gotags: msg:"3281431,omitempty"
// Specifies the phonetic pronunciation of the given name of the contact.
optional string yomi_first_name = 81; // @gotags: msg:"26222031,omitempty"
optional string yomi_first_name = 81; // @gotags: msg:"3281231,omitempty"
// Specifies the phonetic pronunciation of the surname of the contact.
optional string yomi_last_name = 82; // @gotags: msg:"26222131,omitempty"
optional string yomi_last_name = 82; // @gotags: msg:"3281331,omitempty"
// Indicates the name of the contact associated with the birthday event.
optional string birthday_contact_attribution_display_name = 83;
// Indicates whether the contact associated with the birthday event is writable.
Expand Down
20 changes: 10 additions & 10 deletions cmd/properties/protobufs/journal.proto
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,23 @@ option go_package = "github.com/mooijtech/go-pst;properties";

message Journal {
// Indicates whether the document was sent by email or posted to a server folder during journaling.
optional bool log_document_posted = 1; // @gotags: msg:"26934511,omitempty"
optional bool log_document_posted = 1; // @gotags: msg:"3457711,omitempty"
// Indicates whether the document was printed during journaling.
optional bool log_document_printed = 2; // @gotags: msg:"26932611,omitempty"
optional bool log_document_printed = 2; // @gotags: msg:"3457411,omitempty"
// Indicates whether the document was sent to a routing recipient during journaling.
optional bool log_document_routed = 3; // @gotags: msg:"26934411,omitempty"
optional bool log_document_routed = 3; // @gotags: msg:"3457611,omitempty"
// Indicates whether the document was saved during journaling.
optional bool log_document_saved = 4; // @gotags: msg:"26932711,omitempty"
optional bool log_document_saved = 4; // @gotags: msg:"3457511,omitempty"
// Contains the duration, in minutes, of the activity.
optional int32 log_duration = 5; // @gotags: msg:"2693193,omitempty"
optional int32 log_duration = 5; // @gotags: msg:"345673,omitempty"
// Contains the time, in UTC, at which the activity ended.
optional int64 log_end = 6; // @gotags: msg:"26932064,omitempty"
optional int64 log_end = 6; // @gotags: msg:"3456864,omitempty"
// Contains metadata about the Journal object.
optional int32 log_flags = 7; // @gotags: msg:"2693243,omitempty"
optional int32 log_flags = 7; // @gotags: msg:"345723,omitempty"
// Contains the time, in UTC, at which the activity began.
optional int64 log_start = 8; // @gotags: msg:"26931864,omitempty"
optional int64 log_start = 8; // @gotags: msg:"3456664,omitempty"
// Briefly describes the journal activity that is being recorded.
optional string log_type = 9; // @gotags: msg:"26931231,omitempty"
optional string log_type = 9; // @gotags: msg:"3456031,omitempty"
// Contains an expanded description of the journal activity that is being recorded.
optional string log_type_desc = 10; // @gotags: msg:"26934631,omitempty"
optional string log_type_desc = 10; // @gotags: msg:"3457831,omitempty"
}
Loading