isamert / empv.el

An Emacs media player, media library manager, radio player, YouTube frontend
GNU General Public License v3.0
107 stars 19 forks source link

Backtrace: empv throws error on query #76

Closed tvraman closed 5 months ago

tvraman commented 5 months ago

Backtrace: empv-youtube-tabulated throws error.

Query: "election express" Debugger entered--Lisp error: (void-variable empv--last-youtube-candidates) (#f(compiled-function () #<bytecode 0x1f4bddc1ee43e355>)) (run-hooks change-major-mode-after-body-hook special-mode-hook tabulated-list-mode-hook empv-youtube-results-mode-hook) (apply run-hooks change-major-mode-after-body-hook (special-mode-hook tabulated-list-mode-hook empv-youtube-results-mode-hook)) (run-mode-hooks empv-youtube-results-mode-hook) (empv-youtube-results-mode) (empv--youtube-show-tabulated-results #s(empv--yt-search :query "\"election express\"" :type video :page 1 :results ...)) (empv-youtube-tabulated-last-results) (#f(compiled-function (results) #<bytecode 0x1a2d13398666cf6>) (... ... ... ... ... ... ... ... ... ... ... ... ... ... ...)) (#f(compiled-function (status) #<bytecode -0x29a9729559f5ce9>) (:peer (:certificates (... ... ...) :certificate (:version 3 :serial-number "04:87:60:38:31:5a:c8:98:05:a3:b9:3c:72:47:40:9f:d6:c1" :issuer "C=US,O=Let's Encrypt,CN=E1" :valid-from "2024-03-19" :valid-to "2024-06-17" :subject "CN=yt.artemislena.eu" :public-key-algorithm "EC/ECDSA" :certificate-security-level "High" :signature-algorithm "ECDSA-SHA384" :public-key-id "sha1:4f:b1:a7:e1:4c:1a:a2:3e:44:2e:2e:9f:df:51:fa:46:d3:a3:1b:be" :public-key-id-sha256 "sha256:ff:ad:a0:ae:46:0a:03:48:c5:c7:8a:52:c4:31:64:ac:3f:15:65:cd:8e:a7:09:e9:31:94:1c:6d:7c:62:36:0c" :certificate-id "sha1:d2:82:18:d4:e5:53:8b:8b:b2:5e:96:f9:f9:a6:65:f0:49:92:e5:e3" :pem "-----BEGIN CERTIFICATE-----\nMIIDgjCCAwigAwIBAgISBIdgODFayJgFo7k8ckdAn9bBMAoGCCqGSM49BAMDMDIx\nCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF\nMTAeFw0yNDAzMTkwNjE0MjFaFw0yNDA2MTcwNjE0MjBaMBwxGjAYBgNVBAMTEXl0\nLmFydGVtaXNsZW5hLmV1MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfinopnmX\niuZGfmpkVo1oSB1FHu/IhPQqPYT0IL94JzTfOzQe0bRqNVDE/m7Q3Hjg67QWLwlJ\n5MAJcrVW+SL/kaOCAhIwggIOMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEFjAUBggr\nBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUDTE+PhT4\nxMCQY98RX1MvyaXCfqowHwYDVR0jBBgwFoAUWvPtK/w2wjd5uVIw6lRvz1XLLqww\nVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vZTEuby5sZW5jci5v\ncmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9lMS5pLmxlbmNyLm9yZy8wHAYDVR0RBBUw\nE4IReXQuYXJ0ZW1pc2xlbmEuZXUwEwYDVR0gBAwwCjAIBgZngQwBAgEwggEDBgor\nBgEEAdZ5AgQCBIH0BIHxAO8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlG\ncR+1mwAAAY5Vj6fmAAAEAwBGMEQCIFxZAI4QqiO54Aj4dF0NZ0kptaE2747E3Bu4\nrlhjbJLFAiBOgpv1AF70q9OYANIg8CTgzVEz8kg+Riviy0a8dYJn/gB2AKLiv9Ye\n3i8vB6DWTm03p9xlQ7DGtS6i2reK+Jpt9RfYAAABjlWPp9MAAAQDAEcwRQIhALhr\nJ9ni10km3XCjRqlt4ByCEtOwLqVWGkghzzcpQFo6AiA2RCjNqiOzRpKsu37if52V\nzwgHWhkFQQFTdeA0kCEQwTAKBggqhkjOPQQDAwNoADBlAjBPYoIpvYlP08XgaUHT\nzuuWgN/w2hQmLdSpvB89Uk9AkcxgKkN7ISbCx0qPjpvo/uYCMQC9LmTKM3ju/1PN\nEydhRlhuCUsYNaVrm8epIbJaB+fj6g9rsxK+QIz3zi+ev1HMhew=\n-----END CERTIFICATE-----\n") :key-exchange "ECDHE-RSA" :protocol "TLS1.3" :cipher "AES-128-GCM" :mac "AEAD" :encrypt-then-mac nil))) (apply #f(compiled-function (status) #<bytecode -0x29a9729559f5ce9>) (:peer (:certificates (... ... ...) :certificate (:version 3 :serial-number "04:87:60:38:31:5a:c8:98:05:a3:b9:3c:72:47:40:9f:d6:c1" :issuer "C=US,O=Let's Encrypt,CN=E1" :valid-from "2024-03-19" :valid-to "2024-06-17" :subject "CN=yt.artemislena.eu" :public-key-algorithm "EC/ECDSA" :certificate-security-level "High" :signature-algorithm "ECDSA-SHA384" :public-key-id "sha1:4f:b1:a7:e1:4c:1a:a2:3e:44:2e:2e:9f:df:51:fa:46:d3:a3:1b:be" :public-key-id-sha256 "sha256:ff:ad:a0:ae:46:0a:03:48:c5:c7:8a:52:c4:31:64:ac:3f:15:65:cd:8e:a7:09:e9:31:94:1c:6d:7c:62:36:0c" :certificate-id "sha1:d2:82:18:d4:e5:53:8b:8b:b2:5e:96:f9:f9:a6:65:f0:49:92:e5:e3" :pem "-----BEGIN CERTIFICATE-----\nMIIDgjCCAwigAwIBAgISBIdgODFayJgFo7k8ckdAn9bBMAoGCCqGSM49BAMDMDIx\nCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF\nMTAeFw0yNDAzMTkwNjE0MjFaFw0yNDA2MTcwNjE0MjBaMBwxGjAYBgNVBAMTEXl0\nLmFydGVtaXNsZW5hLmV1MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfinopnmX\niuZGfmpkVo1oSB1FHu/IhPQqPYT0IL94JzTfOzQe0bRqNVDE/m7Q3Hjg67QWLwlJ\n5MAJcrVW+SL/kaOCAhIwggIOMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEFjAUBggr\nBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUDTE+PhT4\nxMCQY98RX1MvyaXCfqowHwYDVR0jBBgwFoAUWvPtK/w2wjd5uVIw6lRvz1XLLqww\nVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vZTEuby5sZW5jci5v\ncmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9lMS5pLmxlbmNyLm9yZy8wHAYDVR0RBBUw\nE4IReXQuYXJ0ZW1pc2xlbmEuZXUwEwYDVR0gBAwwCjAIBgZngQwBAgEwggEDBgor\nBgEEAdZ5AgQCBIH0BIHxAO8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlG\ncR+1mwAAAY5Vj6fmAAAEAwBGMEQCIFxZAI4QqiO54Aj4dF0NZ0kptaE2747E3Bu4\nrlhjbJLFAiBOgpv1AF70q9OYANIg8CTgzVEz8kg+Riviy0a8dYJn/gB2AKLiv9Ye\n3i8vB6DWTm03p9xlQ7DGtS6i2reK+Jpt9RfYAAABjlWPp9MAAAQDAEcwRQIhALhr\nJ9ni10km3XCjRqlt4ByCEtOwLqVWGkghzzcpQFo6AiA2RCjNqiOzRpKsu37if52V\nzwgHWhkFQQFTdeA0kCEQwTAKBggqhkjOPQQDAwNoADBlAjBPYoIpvYlP08XgaUHT\nzuuWgN/w2hQmLdSpvB89Uk9AkcxgKkN7ISbCx0qPjpvo/uYCMQC9LmTKM3ju/1PN\nEydhRlhuCUsYNaVrm8epIbJaB+fj6g9rsxK+QIz3zi+ev1HMhew=\n-----END CERTIFICATE-----\n") :key-exchange "ECDHE-RSA" :protocol "TLS1.3" :cipher "AES-128-GCM" :mac "AEAD" :encrypt-then-mac nil))) (url-http-activate-callback) (url-http-content-length-after-change-function 1171 3311 2140) (url-http-generic-filter # "J\212\2728Ya<)\243\270\263\273\273\224;TH6\345\261\317\2\272\303\222\3359\337\5\241\355\276\\267\363\20M\324\265\13\356J\257\3261\314v}\253\3461>\361d\255\3232\353\177l\345Q.\273\247\211/\327%\276^\376!p\354\256\15\375~i\26\330\264\1\317n\277\341yj\374\343(oV\210\262ahV\363mN\231\313\223\351\32\311,\206Y&\200\31o\343Z;\213%\32`9o\2772\251\356\370q\220\361\1\304\224\273\256\22\304\207\31\346\7\30,p?\16\260\336\7\374\272\245\276\210x,x\224\352H\335\270\226\318\226S\377ep\316\331\242\33&\301\313\357\215\11\6\6\354I\15\326\254\235\346)I\7\323\277\377(\271\363y\354\245\3360ZF\323\251\333V\275\5\206\2571\2112XL\350$U\254\n\"\275>\33\207\201\33\257\256SW\370|\316.\302E\255sO\375X\371GIw\232\376\216~\373\314\343a4\16\247<\230\274\16\245)\373\267\356\276\346\322#{\217\261\307%%g'\243\3eb\322\243\13\32\220S\352/iz\346\330Ob\365\f\244\\\337\31a?\34\34\335\\m\263\336\354\346\240j\302\6\241i\22v\236\250A\330\20\212,l\210B\27v&\231\350\302\2064TaC\20\226\260!\3E\330\20\200 l\323l\231\246\223W\266\32/Sv\243\335l5\212\225\275\354\261\314\331\266c\350t\366\5\15\\365 \21\365\225\236K\304\255\16\250\22=\314X\372\360\360t8\272\341\261s\364X5K\203\3204Y:O\324i\10E\2664D\241[:\223LtKC\32\252\245!\10\313\322\220\201bi\10@\260t\253e\248\272\265\263aG7\352\237c\350\16\261H\227Fj\320\217\311a(\210A\372\222JFF\234\336\371\354\307\302\2;\316W\330\311\251\277=i|\335\276\274=\257\232\273Ah\232\334\235'jp7\204\"\273\33\242\320\335\235I&\272\273!\15\325\335\20\204\345n\310@q7\4 \270\333p\352\355V^\336\206S\352n\263i\266\212\334m\275__\267\265\332\373\231\354+\264\253\356Dn\303\11'\207t,\225\271O\0022\354\251\203Wt\316\311\251zzUp\377GU\336\17\252\16\277H?\272\177\327\337\31ws~V\357\317.\232*]Us7\10M\223\273\363D\15\356\206PdwC\24\272\2733\311Dw7\244\241\272\33\202\260\334\15\31(\356\206\0\4w\267\353N\201\272\333\245\223\331M\273a\24\231\273\361\336d\266So\350\20\367\5\275K\327\33\277\320iZp\37\11\25\220K\256X\24\n\371\262Ry\274t\231\240w\312\320\317d\300|\32Lh\0\312\355\214\255\227\27\315V\340F\223:\335\253\232\255Ah\232l\235'j\2605\204\"\333\32\242\320m\235I&\272\255!\15\325\326\20\204ek\310@\2615\4T\332\246c\25L\223\30\346\206+m\313hj\236'\241\337\246\262\323\225\310\16\351\235\257zI~\210Ua\35\4|I\37\223)\25\234\364#.\270T\337\13\351\206J\243c\231q\366ty\365\360\264\335u\217o\26Us6\10M\223\263\363D\15\316\206PdgC\24\272\2633\311Dw6\244\241:\33\202\260\234\15\31(\316\206\0\224\365G\247Y\260\372\270S\352\354\265\32F\314vs\303\213\217\345\375z\357\313\374$\200\35\201e\275}_\334\233\3\363\344\311\274\214'US5\10M\223\252\363D\15\252\206PdUC\24\272\2523\311DW5\244\241\252\32\202\260T\15\31(\252\206\0\fU\327\13\346B\324\251\250\235zaqm\244\242.\366\264m~^\213H\332\11\362\316B\343;\266N\36\351C\357\253\374\272\264\342\252\331\32\204\246k\3311G\324\261\354\10\240\330\313\216\0\205\277\354\10\223\211\277\354\10h\270\313\216\0\204\266\354\10\308\313\216\0\200\3212b\26\324\325j\260\314\326m\243\345\24O\205\224\227\325\366gu\364\251*\272\353\261@\331-\253\345\177\264x\266\312\346-c>\277\33o\207\303\252y\33\204\246\253\312\316\21uT\331\0\212]e\3\24~\225\15\223\211_e\3\32n\225\15@hU6\340T\331\0\2001\211m\25\265c\33;V\331\204\210m\267\213\27\35\0152\15\3\345\317Bu[Z\326\34_\325\335!\243\220\217\31\271\274'\3\217\221.M\346L,\3111S\331\365\225\325\225\260\257\275P]\342\373\352G@\16\251\2302\21\377@\6\"\211\345\217\31i{\341\177\233^\20\265\257\343\312\275\366\10B\323$\355<Q\203\264!\24Y\332\20\205.\355L2\321\245\15i\250\322\206 ,iC\6\212\264!\0\243Od\365\305\346\372D6-m\243\241u\202\244Cz\241J4\37\253\212\373\232\256z\373F\$\256\227\4t\242>?\23k\373Z\25\335\207i\356\336\36\315H[|\31\37\371\243\376\314\364*\327\334\7B\323$\355<Q\203\264!\24Y\332\20\205.\355L2\321\245\15i\250\322\206 ,iC\6\212\264!\0e>\333\264\254\242\31\355\15K\333F\177Y\375\212\321\261\307\322n\20\21PI\37\351\233Y\221.\215d\242\316$CqG\3r\254\212j\177U\215\377\244\36\225\372\211H\324\5\253I\356\342n\277^\304\223\275\376l8w\332U\3237\10M\223\276\363D\15\372\206Pd}C\24\272\2763\311D\3277\244\241\352\33\202\260\364\15\31(\372\206\0\224\255F\214F\301\24\267U\272\325\310\232\372\266\322\236B\315{\215t\312\227!W\255\332\351,\312Y:q\242\34\336\367\370\234\222=\365!\35\3553\232u\367\236O\305\361\301\365\376\265]\271V\22\20\232&w\347\211\32\334\15\241\310\356\206(twg\222\211\356nHCu7\4a\271\0332P\334\15\1\30\245\267a\24v\375\31\233u\267...")

isamert commented 5 months ago

Can you fully reload the package? empv--last-youtube-candidates is removed but I guess some of the functions are not re-evaluated after upgrade.

If you have any function that depends on this variable, you need to replace with empv--last-youtube-search (it's a struct, not a list anymore). But I don't recommend depending on that variable.

tvraman commented 5 months ago

Me culpa -- was depending on that var in emacspeak; will fix at my end.

--

isamert commented 5 months ago

If you can explain the use case, I can make it a part of the public API with a little bit adjustments for the use case.

tvraman commented 5 months ago

See https://github.com/tvraman/emacspeak/blob/master/lisp/emacspeak-empv.el#L358 for an example of my use case, I access that struct to speak something meaningful when the results are loaded.

--

isamert commented 5 months ago

Does empv-youtube-tabulated-new-entries-hook work for this use case? We talked about it on #70.

tvraman commented 5 months ago

I still need to implement that, thanks for the reminder.

This code in question at my end traces back to before you implemented "more results" I think. One issue I have with empv, and I dont have a solution to, is that I find the naming scheme for vars and funcs in empv difficult to remember or guess because of their length and I dont have a clear understanding of the thought process that went into the naming.

--

isamert commented 5 months ago

That's a fair criticism, there is no guidelines that I can give you to illuminate the thought process of naming. Generally it's just matter of coming up with a name at given moment. If you can give particular examples, like this is the variable name that is used in empv but I would've expected something like this ..., I can go refactor some of them and come up with a better naming scheme.

tvraman commented 5 months ago

Suggestion on naming:

consistently use verb-noun or noun-verb but not a mixture would be one first step.

--

tvraman commented 5 months ago

I used the new entries hook like so: https://github.com/tvraman/emacspeak/blob/master/lisp/emacspeak-empv.el#L355 and it works and the code in emacspeak is simpler and less fragile, thanks for the suggestion!

--

--