Code Monkey home page Code Monkey logo

baileys-bottle's Introduction

Baileys bottle

A little package made by deadlinecode for storing all the data from baileys in whatever database you want to use by using typeorm

This package creates a store for a baileys bot instance. You can pass in a database connection to the functions and they will use that connection to create all the needed tables and save all the data to the database using typeorm, which supports all different kinds of databases.

TypeORM currently supports:

  • MySQL
  • MariaDB
  • Postgres
  • CockroachDB
  • SQLite
  • Microsoft SQL Server
  • Oracle
  • SAP Hana
  • sql.js

Installation

npm install baileys-bottle

Usage

Take a look at the information in the example folder

I wanna tweak it for my own use case

Sure thing! You can tinker with the package like this:

  1. Clone the repo
    git clone https://github.com/deadlinecode/baileys-bottle .
  2. Change stuff you wanna change
  3. Build the package
    npm build
  4. Install it in another nodejs project from wherever you saved it on your disk
    # inside your other project
    npm install /path/to/the/repo/named/baileys-bottle
    or alternatively run the example
    # inside the package folder
    npm run example

Found a bug or want to contribute because you're a cool person?

If you found an issue or would like to submit an improvement, please open an issue here.

If you actually have some spare time and want to contribute, feel free to open a PR and please don't forget to (create and) link the corresponding issue.
It's important so we can keep track of all the issues and feature requests that got resolved by PRs.

Known issues/feature requests (WIP)

  • Support multiple instance (currently only one instance is supported | mby by linking the corresponding stuff inside the auth table)

  • Add the ability to change the behavior of data changes (e.g. if you want to keep deleted messages in the database)

  • Improve the linking between tables (e.g. MessageDic.ts) by just linking to an account so resolving messages or other things to a single contact is easier

You need help or want to exchange about things

Well bad for you.
Jk.
I currently don't have a discord but you can find me in the WAWebSockets discord in the 🍸-baileys and 🏷️-others channels.

See ya over there and thanks for using my package ^^ <3

baileys-bottle's People

Contributors

byexos avatar deadlinecode avatar dependabot[bot] avatar h110m avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

baileys-bottle's Issues

QueryFailedError: there is no unique or exclusion constraint matching the ON CONFLICT

I'm currently trying to get updates of new members added to the group using group-participants.update , but in the meanwhile I'm receiving this error (on debug: true):

query: INSERT INTO "chat"("id", "messages", "newJid", "oldJid", "lastMsgTimestamp", "unreadCount", "readOnly", "endOfHistoryTransfer", "ephemera
lExpiration", "ephemeralSettingTimestamp", "endOfHistoryTransferType", "conversationTimestamp", "name", "pHash", "notSpam", "archived", "disappe
aringMode", "unreadMentionCount", "markedAsUnread", "participant", "tcToken", "tcTokenTimestamp", "contactPrimaryIdentityKey", "pinned", "muteEn
dTime", "wallpaper", "mediaVisibility", "tcTokenSenderTimestamp", "suspended", "terminated", "createdAt", "createdBy", "description", "support",
 "isParentGroup", "isDefaultSubgroup", "parentGroupId", "displayName", "pnJid", "selfMasked", "mute", "pin", "archive", "dBAuthId") VALUES ($1, 
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, $2, $3, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, D
EFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, D
EFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, $4) ON CONFLICT ( "id", "dBAuthId" ) DO UPDATE SET "id" = EXCLUD
ED."id", "dBAuthId" = EXCLUDED."dBAuthId", "conversationTimestamp" = EXCLUDED."conversationTimestamp", "name" = EXCLUDED."name"  RETURNING "DBId" -- PARAMETERS: ["[email protected]","1683136266","Jid",1]
query failed: INSERT INTO "chat"("id", "messages", "newJid", "oldJid", "lastMsgTimestamp", "unreadCount", "readOnly", "endOfHistoryTransfer", "e
phemeralExpiration", "ephemeralSettingTimestamp", "endOfHistoryTransferType", "conversationTimestamp", "name", "pHash", "notSpam", "archived", "
disappearingMode", "unreadMentionCount", "markedAsUnread", "participant", "tcToken", "tcTokenTimestamp", "contactPrimaryIdentityKey", "pinned", 
"muteEndTime", "wallpaper", "mediaVisibility", "tcTokenSenderTimestamp", "suspended", "terminated", "createdAt", "createdBy", "description", "su
pport", "isParentGroup", "isDefaultSubgroup", "parentGroupId", "displayName", "pnJid", "selfMasked", "mute", "pin", "archive", "dBAuthId") VALUE
S ($1, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, $2, $3, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEF
AULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEF
AULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, $4) ON CONFLICT ( "id", "dBAuthId" ) DO UPDATE SET "id" =
 EXCLUDED."id", "dBAuthId" = EXCLUDED."dBAuthId", "conversationTimestamp" = EXCLUDED."conversationTimestamp", "name" = EXCLUDED."name"  RETURNING "DBId" -- PARAMETERS: ["[email protected]","1683136266","Jid",1]
error: error: there is no unique or exclusion constraint matching the ON CONFLICT specification
    at Parser.parseErrorMessage (C:\Users\hey\IdeaProjects\proj\node_modules\pg-protocol\dist\parser.js:287:98)
    at Parser.handlePacket (C:\Users\hey\IdeaProjects\proj\node_modules\pg-protocol\dist\parser.js:126:29)
    at Parser.parse (C:\Users\hey\IdeaProjects\proj\node_modules\pg-protocol\dist\parser.js:39:38)
    at TLSSocket.<anonymous> (C:\Users\hey\IdeaProjects\proj\node_modules\pg-protocol\dist\index.js:11:42)
    at TLSSocket.emit (node:events:513:28)
    at TLSSocket.emit (node:domain:489:12)
    at addChunk (node:internal/streams/readable:324:12)
    at readableAddChunk (node:internal/streams/readable:297:9)
    at Readable.push (node:internal/streams/readable:234:10)
    at TLSWrap.onStreamRead (node:internal/stream_base_commons:190:23)
    at TLSWrap.callbackTrampoline (node:internal/async_hooks:130:17) {
  length: 148,
  severity: 'ERROR',
  code: '42P10',
  detail: undefined,
  hint: undefined,
  position: undefined,
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'plancat.c',
  line: '861',
  routine: 'infer_arbiter_indexes'
}
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
QueryFailedError: there is no unique or exclusion constraint matching the ON CONFLICT specification
    at PostgresQueryRunner.query (C:\Users\hey\IdeaProjects\proj\node_modules\typeorm\driver\postgres\PostgresQueryRunner.js:211:19)      
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async InsertQueryBuilder.execute (C:\Users\hey\IdeaProjects\proj\node_modules\typeorm\query-builder\InsertQueryBuilder.js:106:33)

I'm experiencing this only on group-participants.update's "add" events but not on "remove" or other events like message.upsert.

NOTE: I'm using WhiskeySockets by using yarn add @adiwajshing/baileys@github:WhiskeySockets/Baileys , compiles it using tsc, and thereby replaces with baileys-bottle/node_modules/@adiwajshing/baileys/. I'm using Postgres as my database type.

[ ISSUE ] Scanning QR creates multiple auth records

Describe the bug
When i scan de QR code i get 17 auth token using MYSQL

Expected behavior
One sessions

Screenshots
Screen Shot 2022-08-29 at 13 05 49

Version (please complete the following information):

  • NodeJS: [16.11.0]
  • Baileys [4.3.0]

question: what better db to store keys of dozens of bots?

Sorry for asking here, but I couldn't find another place.
my doubt is simple. based on your usage, what would be the best DB to store keys for dozens of bots? (80-100 bots)
I tried to use Redis in a scheme I made myself, but the RAM consumption was high (obviously because redis stores everything in ram 😅), so I recently migrated to postgresql, but I had this problem too, high consumption of ram and CPU by the DB (running in a docker container with 2gb ram and 2vcpu, it was using cpu at 100% all the time and ram coming up to 1gb just for the DB)
in redis it was storing something around 200k keys
in postgresql it was already at 100k when it started to consume a lot of hardware resources

Has anyone had any better experience with any specific DB?

[BUG] throw new QueryFailedError_1.QueryFailedError(query, parameters, err);

As soon i scan QR this error comes

Bottle config

const { auth, store } = await BaileysBottle({
		type: "postgres",
		host: "containers-us-west-52.railway.app",
		port: 5586,
		username: "####",
		password: "####",
		database: "railway",
});
Full Error Log

/home/ahmed/wabot/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:211
throw new QueryFailedError_1.QueryFailedError(query, parameters, err);
^

QueryFailedError: invalid byte sequence for encoding "UTF8": 0xde 0x20
at PostgresQueryRunner.query (/home/ahmed/wabot/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:211:19)
at runMicrotasks ()
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async InsertQueryBuilder.execute (/home/ahmed/wabot/node_modules/typeorm/query-builder/InsertQueryBuilder.js:106:33) {
query: 'INSERT INTO "chat"("id", "messages", "newJid", "oldJid", "lastMsgTimestamp", "unreadCount", "readOnly", "endOfHistoryTransfer", "ephemeralExpiration", "ephemeralSettingTimestamp", "endOfHistoryTransferType", "conversationTimestamp", "name", "pHash", "notSpam", "archived", "disappearingMode", "unreadMentionCount", "markedAsUnread", "participant", "tcToken", "tcTokenTimestamp", "contactPrimaryIdentityKey", "pinned", "muteEndTime", "wallpaper", "mediaVisibility", "tcTokenSenderTimestamp", "suspended", "terminated", "createdAt", "createdBy", "description", "support", "isParentGroup", "isDefaultSubgroup", "parentGroupId", "displayName", "pnJid", "selfMasked", "mute", "pin", "archive") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66, $67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77, $78, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($79, $80, $81, $82, $83, $84, $85, $86, $87, $88, $89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99, $100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110, $111, $112, $113, $114, $115, $116, $117, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($118, $119, $120, $121, $122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132, $133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143, $144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $154, $155, $156, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($157, $158, $159, $160, $161, $162, $163, $164, $165, $166, $167, $168, $169, $170, $171, $172, $173, $174, $175, $176, $177, $178, $179, $180, $181, $182, $183, $184, $185, $186, $187, $188, $189, $190, $191, $192, $193, $194, $195, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($196, $197, $198, $199, $200, $201, $202, $203, $204, $205, $206, $207, $208, $209, $210, $211, $212, $213, $214, $215, $216, $217, $218, $219, $220, $221, $222, $223, $224, $225, $226, $227, $228, $229, $230, $231, $232, $233, $234, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($235, $236, $237, $238, $239, $240, $241, $242, $243, $244, $245, $246, $247, $248, $249, $250, $251, $252, $253, $254, $255, $256, $257, $258, $259, $260, $261, $262, $263, $264, $265, $266, $267, $268, $269, $270, $271, $272, $273, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($274, $275, $276, $277, $278, $279, $280, $281, $282, $283, $284, $285, $286, $287, $288, $289, $290, $291, $292, $293, $294, $295, $296, $297, $298, $299, $300, $301, $302, $303, $304, $305, $306, $307, $308, $309, $310, $311, $312, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($313, $314, $315, $316, $317, $318, $319, $320, $321, $322, $323, $324, $325, $326, $327, $328, $329, $330, $331, $332, $333, $334, $335, $336, $337, $338, $339, $340, $341, $342, $343, $344, $345, $346, $347, $348, $349, $350, $351, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($352, $353, $354, $355, $356, $357, $358, $359, $360, $361, $362, $363, $364, $365, $366, $367, $368, $369, $370, $371, $372, $373, $374, $375, $376, $377, $378, $379, $380, $381, $382, $383, $384, $385, $386, $387, $388, $389, $390, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($391, $392, $393, $394, $395, $396, $397, $398, $399, $400, $401, $402, $403, $404, $405, $406, $407, $408, $409, $410, $411, $412, $413, $414, $415, $416, $417, $418, $419, $420, $421, $422, $423, $424, $425, $426, $427, $428, $429, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($430, $431, $432, $433, $434, $435, $436, $437, $438, $439, $440, $441, $442, $443, $444, $445, $446, $447, $448, $449, $450, $451, $452, $453, $454, $455, $456, $457, $458, $459, $460, $461, $462, $463, $464, $465, $466, $467, $468, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($469, $470, $471, $472, $473, $474, $475, $476, $477, $478, $479, $480, $481, $482, $483, $484, $485, $486, $487, $488, $489, $490, $491, $492, $493, $494, $495, $496, $497, $498, $499, $500, $501, $502, $503, $504, $505, $506, $507, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($508, $509, $510, $511, $512, $513, $514, $515, $516, $517, $518, $519, $520, $521, $522, $523, $524, $525, $526, $527, $528, $529, $530, $531, $532, $533, $534, $535, $536, $537, $538, $539, $540, $541, $542, $543, $544, $545, $546, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($547, $548, $549, $550, $551, $552, $553, $554, $555, $556, $557, $558, $559, $560, $561, $562, $563, $564, $565, $566, $567, $568, $569, $570, $571, $572, $573, $574, $575, $576, $577, $578, $579, $580, $581, $582, $583, $584, $585, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($586, $587, $588, $589, $590, $591, $592, $593, $594, $595, $596, $597, $598, $599, $600, $601, $602, $603, $604, $605, $606, $607, $608, $609, $610, $611, $612, $613, $614, $615, $616, $617, $618, $619, $620, $621, $622, $623, $624, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($625, $626, $627, $628, $629, $630, $631, $632, $633, $634, $635, $636, $637, $638, $639, $640, $641, $642, $643, $644, $645, $646, $647, $648, $649, $650, $651, $652, $653, $654, $655, $656, $657, $658, $659, $660, $661, $662, $663, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($664, $665, $666, $667, $668, $669, $670, $671, $672, $673, $674, $675, $676, $677, $678, $679, $680, $681, $682, $683, $684, $685, $686, $687, $688, $689, $690, $691, $692, $693, $694, $695, $696, $697, $698, $699, $700, $701, $702, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($703, $704, $705, $706, $707, $708, $709, $710, $711, $712, $713, $714, $715, $716, $717, $718, $719, $720, $721, $722, $723, $724, $725, $726, $727, $728, $729, $730, $731, $732, $733, $734, $735, $736, $737, $738, $739, $740, $741, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($742, $743, $744, $745, $746, $747, $748, $749, $750, $751, $752, $753, $754, $755, $756, $757, $758, $759, $760, $761, $762, $763, $764, $765, $766, $767, $768, $769, $770, $771, $772, $773, $774, $775, $776, $777, $778, $779, $780, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($781, $782, $783, $784, $785, $786, $787, $788, $789, $790, $791, $792, $793, $794, $795, $796, $797, $798, $799, $800, $801, $802, $803, $804, $805, $806, $807, $808, $809, $810, $811, $812, $813, $814, $815, $816, $817, $818, $819, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($820, $821, $822, $823, $824, $825, $826, $827, $828, $829, $830, $831, $832, $833, $834, $835, $836, $837, $838, $839, $840, $841, $842, $843, $844, $845, $846, $847, $848, $849, $850, $851, $852, $853, $854, $855, $856, $857, $858, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($859, $860, $861, $862, $863, $864, $865, $866, $867, $868, $869, $870, $871, $872, $873, $874, $875, $876, $877, $878, $879, $880, $881, $882, $883, $884, $885, $886, $887, $888, $889, $890, $891, $892, $893, $894, $895, $896, $897, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($898, $899, $900, $901, $902, $903, $904, $905, $906, $907, $908, $909, $910, $911, $912, $913, $914, $915, $916, $917, $918, $919, $920, $921, $922, $923, $924, $925, $926, $927, $928, $929, $930, $931, $932, $933, $934, $935, $936, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($937, $938, $939, $940, $941, $942, $943, $944, $945, $946, $947, $948, $949, $950, $951, $952, $953, $954, $955, $956, $957, $958, $959, $960, $961, $962, $963, $964, $965, $966, $967, $968, $969, $970, $971, $972, $973, $974, $975, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($976, $977, $978, $979, $980, $981, $982, $983, $984, $985, $986, $987, $988, $989, $990, $991, $992, $993, $994, $995, $996, $997, $998, $999, $1000, $1001, $1002, $1003, $1004, $1005, $1006, $1007, $1008, $1009, $1010, $1011, $1012, $1013, $1014, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($1015, $1016, $1017, $1018, $1019, $1020, $1021, $1022, $1023, $1024, $1025, $1026, $1027, $1028, $1029, $1030, $1031, $1032, $1033, $1034, $1035, $1036, $1037, $1038, $1039, $1040, $1041, $1042, $1043, $1044, $1045, $1046, $1047, $1048, $1049, $1050, $1051, $1052, $1053, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($1054, $1055, $1056, $1057, $1058, $1059, $1060, $1061, $1062, $1063, $1064, $1065, $1066, $1067, $1068, $1069, $1070, $1071, $1072, $1073, $1074, $1075, $1076, $1077, $1078, $1079, $1080, $1081, $1082, $1083, $1084, $1085, $1086, $1087, $1088, $1089, $1090, $1091, $1092, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($1093, $1094, $1095, $1096, $1097, $1098, $1099, $1100, $1101, $1102, $1103, $1104, $1105, $1106, $1107, $1108, $1109, $1110, $1111, $1112, $1113, $1114, $1115, $1116, $1117, $1118, $1119, $1120, $1121, $1122, $1123, $1124, $1125, $1126, $1127, $1128, $1129, $1130, $1131, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($1132, $1133, $1134, $1135, $1136, $1137, $1138, $1139, $1140, $1141, $1142, $1143, $1144, $1145, $1146, $1147, $1148, $1149, $1150, $1151, $1152, $1153, $1154, $1155, $1156, $1157, $1158, $1159, $1160, $1161, $1162, $1163, $1164, $1165, $1166, $1167, $1168, $1169, $1170, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($1171, $1172, $1173, $1174, $1175, $1176, $1177, $1178, $1179, $1180, $1181, $1182, $1183, $1184, $1185, $1186, $1187, $1188, $1189, $1190, $1191, $1192, $1193, $1194, $1195, $1196, $1197, $1198, $1199, $1200, $1201, $1202, $1203, $1204, $1205, $1206, $1207, $1208, $1209, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($1210, $1211, $1212, $1213, $1214, $1215, $1216, $1217, $1218, $1219, $1220, $1221, $1222, $1223, $1224, $1225, $1226, $1227, $1228, $1229, $1230, $1231, $1232, $1233, $1234, $1235, $1236, $1237, $1238, $1239, $1240, $1241, $1242, $1243, $1244, $1245, $1246, $1247, $1248, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($1249, $1250, $1251, $1252, $1253, $1254, $1255, $1256, $1257, $1258, $1259, $1260, $1261, $1262, $1263, $1264, $1265, $1266, $1267, $1268, $1269, $1270, $1271, $1272, $1273, $1274, $1275, $1276, $1277, $1278, $1279, $1280, $1281, $1282, $1283, $1284, $1285, $1286, $1287, DEFAULT, DEFAULT, DEFAULT, DEFAULT), ($1288, $1289, $1290, $1291, $1292, $1293, $1294, $1295, $1296, $1297, $1298, $1299, $1300, $1301, $1302, $1303, $1304, $1305, $1306, $1307, $1308, '... 3288 more characters,
parameters: [
'status@broadcast',
'[{"message":{"key":{"remoteJid":"status@broadcast","fromMe":false,"id":"828246038358630953658892102031"},"message":{"videoMessage":{"mimetype":"video/mp4","fileSha256":"UVaqC2QQHhbKwrMibdhUYmCcwzk8WP1UNz9Y8ppx+do=","fileLength":"574858","mediaKey":"GPiBdPj9uc0rnhX4JNo4FH8oZd2eddTHGW69f8pF1FA=","height":1920,"width":1080,"fileEncSha256":"bY3CZyz6v97Juf7stoAkXM+xGO2pX4HSO+MVme6p4So=","staticUrl":"https://static.whatsapp.net/downloadable?category=PSA&id=302970794383134024&num=c950f395-47eb-41c8-a455-017463f0430b"}},"messageTimestamp":"0","participant":"[email protected]","ephemeralOutOfSync":false,"mediaData":{"localPath":"Media/.Statuses/a13dc31d3ff8403bb3ecf2c9e9329f4f.mp4"}}}]',
'',
'',
'{"low":0,"high":0,"unsigned":true}',
0,
0,
0,
0,
'{"low":0,"high":0,"unsigned":false}',
'0',
'{"low":0,"high":0,"unsigned":true}',
'',
'',
0,
0,
null,
0,
0,
'[]',
Buffer(0) [Uint8Array] [],
'{"low":0,"high":0,"unsigned":true}',
Buffer(0) [Uint8Array] [],
0,
'{"low":0,"high":0,"unsigned":true}',
null,
0,
'{"low":0,"high":0,"unsigned":true}',
0,
0,
'{"low":0,"high":0,"unsigned":true}',
'',
'',
0,
0,
0,
'',
'',
'',
'[email protected]',
'[{"message":{"key":{"remoteJid":"[email protected]","fromMe":false,"id":"32B84359D8EC90C107862636D0C41AA0"},"message":{"extendedTextMessage":{"text":"🥶","previewType":"NONE","contextInfo":{"stanzaId":"3A1E57A9B46668042CD1","participant":"[email protected]","quotedMessage":{"conversation":"Sel mw ki pa gen bot la ui😃"},"expiration":86400,"disappearingMode":{"initiator":"CHANGED_IN_CHAT"}},"inviteLinkGroupTypeV2":"DEFAULT"}},"messageTimestamp":"1665683431","participant":"[email protected]","ephemeralOutOfSync":false}}]',
'',
'',
'{"low":0,"high":0,"unsigned":true}',
291,
0,
0,
86400,
'{"low":0,"high":0,"unsigned":false}',
'1',
'{"low":1665683431,"high":0,"unsigned":true}',
'👾WHATSAPP GROUP BOT👾',
'1:T4tV34qi',
1,
0,
null,
0,
0,
'[]',
Buffer(0) [Uint8Array] [],
'{"low":0,"high":0,"unsigned":true}',
Buffer(0) [Uint8Array] [],
0,
'{"low":0,"high":0,"unsigned":true}',
null,
0,
'{"low":0,"high":0,"unsigned":true}',
0,
0,
'{"low":0,"high":0,"unsigned":true}',
'',
'',
0,
0,
0,
'',
'',
'',
'[email protected]',
'[{"message":{"key":{"remoteJid":"[email protected]","fromMe":false,"id":"888ACA6B2D1BB9F437B7696B6071A2C6"},"message":{"extendedTextMessage":{"text":"Same here","previewType":"NONE","contextInfo":{"stanzaId":"EE0B670709AD28A4D4B7AF160D8E45C1","participant":"[email protected]","quotedMessage":{"conversation":"BotsApp bot no dey scan"}},"inviteLinkGroupTypeV2":"DEFAULT"}},"messageTimestamp":"1665678679","participant":"[email protected]","ephemeralOutOfSync":false}}]',
'',
'',
'{"low":0,"high":0,"unsigned":true}',
778,
0,
0,
0,
'{"low":0,"high":0,"unsigned":false}',
'1',
'{"low":1665678679,"high":0,"unsigned":true}',
'BotsApp Support Group #2',
'1:IiPaZQmH',
1,
0,
null,
2,
0,
'[]',
Buffer(0) [Uint8Array] [],
'{"low":0,"high":0,"unsigned":true}',
... 1616 more items
],
driverError: error: invalid byte sequence for encoding "UTF8": 0xde 0x20
at Parser.parseErrorMessage (/home/ahmed/wabot/node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (/home/ahmed/wabot/node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (/home/ahmed/wabot/node_modules/pg-protocol/dist/parser.js:39:38)
at Socket. (/home/ahmed/wabot/node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:390:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Socket.Readable.push (node:internal/streams/readable:234:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
length: 122,
severity: 'ERROR',
code: '22021',
detail: undefined,
hint: undefined,
position: undefined,
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'mbutils.c',
line: '1593',
routine: 'report_invalid_encoding'
},
length: 122,
severity: 'ERROR',
code: '22021',
detail: undefined,
hint: undefined,
position: undefined,
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'mbutils.c',
line: '1593',
routine: 'report_invalid_encoding'
}

Node Version : v17.2.0
Baileys Version : ^4.4.0
Baileys Bottle Version : 1.0.2
Pg Version : 8.8.0

let me know if more info is needed

fail(new QueryFailedError_1.QueryFailedError(query, parameters, err))

                fail(new QueryFailedError_1.QueryFailedError(query, parameters, err));
                     ^

QueryFailedError: SQLITE_ERROR: ON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint
at handler (D:\WhatsAppWebAPI\6061\node_modules\typeorm\driver\sqlite\SqliteQueryRunner.js:81:26)
at Statement.errBack (D:\WhatsAppWebAPI\6061\node_modules\sqlite3\lib\sqlite3.js:15:21) {
query: 'INSERT INTO "chat"("DBId", "id", "messages", "newJid", "oldJid", "lastMsgTimestamp", "unreadCount", "readOnly", "endOfHistoryTransfer", "ephemeralExpiration", "ephemeralSettingTimestamp", "endOfHistoryTransferType", "conversationTimestamp", "name", "pHash", "notSpam", "archived", "disappearingMode", "unreadMentionCount", "markedAsUnread", "participant", "tcToken", "tcTokenTimestamp", "contactPrimaryIdentityKey", "pinned", "muteEndTime", "wallpaper", "mediaVisibility", "tcTokenSenderTimestamp", "suspended", "terminated", "createdAt", "createdBy", "description", "support", "isParentGroup", "isDefaultSubgroup", "parentGroupId", "displayName", "pnJid", "selfMasked", "mute", "pin", "archive") VALUES (NULL, ?, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, ?, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) ON CONFLICT ( "id" ) DO UPDATE SET "id" = EXCLUDED."id", "unreadCount" = EXCLUDED."unreadCount", "conversationTimestamp" = EXCLUDED."conversationTimestamp"',
parameters: [ '[email protected]', '1666624041' ],
driverError: [Error: SQLITE_ERROR: ON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint] {
errno: 1,
code: 'SQLITE_ERROR'
},
errno: 1,
code: 'SQLITE_ERROR'
}

Node.js v19.0.0

Make auth table independent of other tables. No update or delete cascade

Is your feature request related to a problem? Please describe.
When auth table id is deleted you are cascading delete to other tables (chats.....)

Describe the solution you'd like
A auth id can be invalid and can be deleted. But the chats, messages.... can continue being valid and not should be deleted. They depends only session_id(key), not from auth id

Describe alternatives you've considered
Make other tables independents from auth table and dependents only of 'session id'(key)

Additional context

I also need to fix some problems with models columns and unique keys to make work in postgres

[ ISSUE ] Table 'db.auth' doesn't exist

Describe the bug
auth table is created (empty), but console showed table does not exist.

Expected behavior
All tables is created without error like in example.

Screenshots
image

Version:

  • NodeJS: 16.15.0
  • Baileys: 4.4.0

Additional context
Also at the below got another error:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NULL, tcTokenSenderTimestamp
image

QueryFailedError: SQLITE_ERROR: ON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint

Describe the bug
Randomly the erros is showed on Baileys Logs.

To Reproduce
Steps to reproduce the behavior:
I can't reproduce it.
The has only null values, this is not normal.
INSERT INTO "chat"("DBId", "id", "messages", "newJid", "oldJid", "lastMsgTimestamp", "unreadCount", "readOnly", "endOfHistoryTransfer", "ephemeralExpiration", "ephemeralSettingTimestamp", "endOfHistoryTransferType", "conversationTimestamp", "name", "pHash", "notSpam", "archived", "disappearingMode", "unreadMentionCount", "markedAsUnread", "participant", "tcToken", "tcTokenTimestamp", "contactPrimaryIdentityKey", "pinned", "muteEndTime", "wallpaper", "mediaVisibility", "tcTokenSenderTimestamp", "suspended", "terminated", "createdAt", "createdBy", "description", "support", "isParentGroup", "isDefaultSubgroup", "parentGroupId", "displayName", "pnJid", "selfMasked", "mute", "pin", "archive", "dBAuthId") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1) ON CONFLICT ( "id", "dBAuthId" ) DO UPDATE SET "id" = EXCLUDED."id", "dBAuthId" = EXCLUDED."dBAuthId"

Expected behavior
The error log does not show any errors.

Screenshots
If applicable, add screenshots to help explain your problem.
Error_Bottle

Version (please complete the following information):

  • NodeJS: v16.17.0
  • Baileys: 5.0.0
  • Baileys-bottle: 2.0.0

Additional context
Maybe, this is not related, but i'm losting messages (not received by Baileys or not sending to recipients)

[ ISSUE ] TypeError: Cannot read properties of undefined (reading 'length')

Describe the bug
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) at ../baileys-bottle/lib/DB.js:50
^
TypeError: Cannot read properties of undefined (reading 'length')

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'use baileys-bottle version 2.1.0 and up'

Expected behavior
Create store using MySQL as database successfully.

Screenshots
error

Version (please complete the following information):

  • NodeJS: 18.13.0
  • Baileys edge version

Additional context
Currently using baileys-bottle version 2.0.0 which runs normally.

can i use this for production?

is this library dead because i dont see any development in it (no commits, no active PRs)
i want to use it for production but i see some issues opened and they dont have any activity in them seems
seems like developer is no longer maintaining this repository.

[ ISSUE ] chats and contacts are empty on DB (only messages and auth has data)

Describe the bug
chats and contacts are empty on DB (only messages and auth has data)

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Version (please complete the following information):

  • NodeJS: [e.g. 16.11.0]
  • Baileys [e.g. 4.3.0]
  • Others...

Additional context
Add any other context about the problem here.

[ ISSUE ] MySQL issues

We have multiple problems with mysql databases
I fixed most of them except one where i currently have problems with saving emojis

The error occures when saving the auth infos (since i have an account with a username containing a emoji | else it would probabbly happen later on in one of the chat, messages or group records)
The error i get is ER_TRUNCATED_WRONG_VALUE_FOR_FIELD which is known for a wrong setting in relation to the collation or charset

I already tried multiple collations (like utf8mb4_unicode_ci) but didn't find anything that worked so this is still a WiP

Another general problem is that baileys key set function (for auth) tries to save to fast which results in multiple "default_auth" records (because it saves before the prev record was made)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.