WAPI.sendMessageToID does not work

please help me, why sendMessageToID not work? ,
i can't send messages to the new number??
please help me..

/// replace in your code
window.WAPI.sendMessageToID = function (id, message, done) {
try {
firstChat = Store.Chat.models[100];
var originalID = firstChat.id;
firstChat.id = typeof originalID === "string" ? id : new window.Store.UserConstructor(id, { intentionallyUsePrivateConstructor: true });
if (done !== undefined) {
firstChat.sendMessage(message).then(function () {
firstChat.id = originalID;
done(true);
});
return true;
} else {
firstChat.sendMessage(message);
firstChat.id = originalID;
return true;
}
} catch (e) {
if (window.Store.Chat.length === 0)
return false;
}
if (done !== undefined) done(false);
return false;

}

/// replace in your code
window.WAPI.sendMessageToID = function (id, message, done) {
try {
// Create user
var idx = new window.Store.UserConstructor(id, {intentionallyUsePrivateConstructor: true});
// Get chat
var chat = window.Store.Chat.find(idx);
// Send message
chat._value.sendMessage(message);
} catch (e) {
return false;
}
if (done !== undefined) done(false);
return false;

};
//Teste
window.WAPI.sendMessageToID2 ('00000000000@c.us','test');

same issue.

// use this code
window.WAPI.sendMessageToID2 = function (id, message, done) {
try {
// Create user
var idx = new window.Store.UserConstructor(id, {intentionallyUsePrivateConstructor: true});
// Get chat
var chat = window.Store.Chat.find(idx);
// Send message
chat._value.sendMessage(message);
} catch (e) {
return false;
}
if (done !== undefined) done(false);
return false;

}; //window.WAPI.sendMessageToID2 ('0000000000@c.us','oi');

// use this code window.WAPI.sendMessageToID2 = function (id, message, done) { try { // Create user var idx = new window.Store.UserConstructor(id, {intentionallyUsePrivateConstructor: true}); // Get chat var chat = window.Store.Chat.find(idx); // Send message chat._value.sendMessage(message); } catch (e) { return false;
}
if (done !== undefined) done(false);
return false;

}; //window.WAPI.sendMessageToID2 ('0000000000@c.us','oi');

Not working this solution

// use this code window.WAPI.sendMessageToID2 = function (id, message, done) { try { // Create user var idx = new window.Store.UserConstructor(id, {intentionallyUsePrivateConstructor: true}); // Get chat var chat = window.Store.Chat.find(idx); // Send message chat._value.sendMessage(message); } catch (e) { return false;
}
if (done !== undefined) done(false);
return false;

}; //window.WAPI.sendMessageToID2 ('0000000000@c.us','oi');

this was the solution I found, and the sending to new numbers is working

// use this code window.WAPI.sendMessageToID2 = function (id, message, done) { try { // Create user var idx = new window.Store.UserConstructor(id, {intentionallyUsePrivateConstructor: true}); // Get chat var chat = window.Store.Chat.find(idx); // Send message chat._value.sendMessage(message); } catch (e) { return false;
}
if (done !== undefined) done(false);
return false;

}; //window.WAPI.sendMessageToID2 ('0000000000@c.us','oi');

this was the solution I found, and the sending to new numbers is working

getting this error javascript error: Unexpected token 'if'

@duzaq Please share latest wapi.js

@duzaq Please share latest wapi.js

just add below line in WAPI.sendMessageToID in try quote
var chat = window.Store.Chat.find(id); if(chat._value.sendMessage(message)){done(true);return true;}

// use this code window.WAPI.sendMessageToID2 = function (id, message, done) { try { // Create user var idx = new window.Store.UserConstructor(id, {intentionallyUsePrivateConstructor: true}); // Get chat var chat = window.Store.Chat.find(idx); // Send message chat._value.sendMessage(message); } catch (e) { return false;
}
if (done !== undefined) done(false);
return false;

}; //window.WAPI.sendMessageToID2 ('0000000000@c.us','oi');

this was the solution I found, and the sending to new numbers is working

getting this error javascript error: Unexpected token 'if'

just add below line in WAPI.sendMessageToID in try quote
var chat = window.Store.Chat.find(id); if(chat._value.sendMessage(message)){done(true);return true;}

just add below line in WAPI.sendMessageToID in try quote
var chat = window.Store.Chat.find(id); if(chat._value.sendMessage(message)){done(true);return true;}

this worked for me.

just add below line in WAPI.sendMessageToID in try quote
var chat = window.Store.Chat.find(id); if(chat._value.sendMessage(message)){done(true);return true;}
no need of WAPI.sendMessageToID2

This fixes the problem for new chats but duplicates messages for existing chats. Any thoughts?

just add below line in WAPI.sendMessageToID in try quote
var chat = window.Store.Chat.find(id); if(chat._value.sendMessage(message)){done(true);return true;}
no need of WAPI.sendMessageToID2

It doesn't work on New id.How to resolve it?

@fly2012 I have the same problem, do u solve it?

Hello, with the code bellow i can send messages to new ids without problem.
There's just one weird thing about this function that its always returns "false". But the message is sent successfuly.
window.WAPI.sendMessageToID = function (id, message, done) {
    try {
        window.getContact = (id) => {
            return Store.WapQuery.queryExist(id);
        }
        window.getContact(id).then(contact => {
            if (contact.status === 404) {
                done(true);
            } else {
                if(typeof contact.jid === 'undefined') {
                        contact.jid = {
                            '_serialized' : id,
                            'server' : '@' + id.split('@')[1],
                            'user' : id.split('@')[0]
                        }
                 }
                Store.FindChat.findChat(contact.jid).then(chat => {
                    chat.sendMessage(message);
                    return true;
                }).catch(reject => {
                    if (WAPI.sendMessage(id, message)) {
                        done(true);
                        return true;
                    }else{
                        done(false);
                        return false;
                    }
                });
            }
        });
    } catch (e) {
        if (window.Store.Chat.length === 0)
            return false;

        firstChat = Store.Chat.models[0];
        var originalID = firstChat.id;
        firstChat.id = typeof originalID === "string" ? id : new window.Store.UserConstructor(id, { intentionallyUsePrivateConstructor: true });
        if (done !== undefined) {
            firstChat.sendMessage(message).then(function () {
                firstChat.id = originalID;
                done(true);
            });
            return true;
        } else {
            firstChat.sendMessage(message);
            firstChat.id = originalID;
            return true;
        }
    }
    if (done !== undefined) done(false);
    return false;
}

Hi @ruanduarte, did u check it in whatsapp business multidevice version? Because it doesn't work to me

@santirlopez1124, no, I didn't. I'm using the normal version without multidevice. :/

I solved like this:

Add the line with FindChat in neededObjects

if (!window.Store) {
  (function () {
    function getStore(modules) {
      let foundCount = 0;
      let neededObjects = [
          ...,
          { id: "FindChat", conditions: (module) => module.findChat ? module : module.default && module.default.findChat ? module.default : null }
     ]
     ....

Replace your getChat implementation with this one

window.WAPI.getChat = function (id, done) {

  // New version WhatsApp Beta Multi Device
  if (WAPI.isMultiDeviceVersion()) {
    let chat = window.Store.Chat.get(id);
    if (chat) {
      if (chat.sendMessage) {
        if (done) done(chat);
        return chat;
      } else {
        if (done) done(chat._value);
        return chat._value;
      }
    } else {
      // Create user
      var idx = new window.Store.UserConstructor(id, { intentionallyUsePrivateConstructor: true });

      window.Store.FindChat.findChat(idx).then(chat => {
        if (done) done(chat);
      }).catch(e => {
        if (done) done(null);
      })

      return undefined;
    }
  } else
  // Old version
  {
    id = typeof id == "string" ? id : id._serialized;
    const found = window.Store.Chat.get(id);
    found.sendMessage = (found.sendMessage) ? found.sendMessage : function () { return window.Store.sendMessage.apply(this, arguments); };
    if (done !== undefined) done(found);
    return found;
  }
}

This is my isMultiDeviceVersion method

window.WAPI.isMultiDeviceVersion = function () {
  try {
    let resp = window.Store.FeatureChecker.GK.features['MD_BACKEND'];
    return resp;
  } catch {
    return false;
  }
}

Vilson ney, It worked for me! Tk you very much for your solution
Did you have had any number banned after send message to new Id?

@vilsonei, hello!
I tried to use the algorithm that you suggest, but I came across the fact that in all cases a message is sent, even if the number is not registered in WA. Is this how it should be, or did I make some mistake?

@vilsonei, hello! I tried to use the algorithm that you suggest, but I came across the fact that in all cases a message is sent, even if the number is not registered in WA. Is this how it should be, or did I make some mistake?

I do like this:
BWAPI.enviarMensagem = (numero, msg, resolve) => {
  WAPI.checkNumberStatus(numero, data => {

    // Se o status é 200 envia a mensagem
    // if (data.status === 200) {
    if (data && data.status === 200) {
      numero = data.id._serialized;
      WAPI.sendMessageToID(numero, msg, data => {
        resolve(true);
      })

    } else
    // Caso contrário tente utilizar com o nono digito
    if ( numero.length < 18 ) {
      let numeroNonoDigito = window.BWAPI.addNonoDigito(numero);
      window.BWAPI.enviarMensagem(numeroNonoDigito, msg, resolve)
    } else {
      resolve(false);
    }
  });
}

BWAPI.addNonoDigito = (numero) => {
	return numero.substring(0,4) + '9' + numero.substring(4, numero.length);
}

Vilsonei, wich version do you use as base from your script?
If is possible, could you share your complete wapi.js?
I'm trying make your changes but I thing my initial version is not the same.

Vilsonei, wich version do you use as base from your script?
If is possible, could you share your complete wapi.js?
I'm trying make your changes but I thing my initial version is not the same.

This is my lasted customized version:
Link for download

@vilsonei How can I check whether the WA account exists using this script?  "Store.QueryExist.queryExist("788888887737@c.us")" is no wrok

Receving this message when calling sendMessage
sendMessage JavaScript stack:
TypeError: Cannot read properties of undefined (reading 'then')
at Object.window.WAPI.sendMessage (eval at executeScript

@vilsonei How can I check whether the WA account exists using this script? "Store.QueryExist.queryExist("788888887737@c.us")" is no wrok

Yes! Try this using my custom script:
WAPI.checkNumberStatus(numero, data => {

    // if status 200 send message
    // if (data.status === 200) {
    if (data && data.status === 200) {
      numero = data.id._serialized;
      WAPI.sendMessageToID(numero, msg, data => {
        resolve(true);
      })

    } else {
      resolve(false);
    }
  });

See my custom script here.

Receving this message when calling sendMessage sendMessage JavaScript stack: TypeError: Cannot read properties of undefined (reading 'then') at Object.window.WAPI.sendMessage (eval at executeScript

Are you using this script?
See script

Hi @vilsonei
I merged your script into mine, and tried to use it with multi-devices,
For some reason, after scanning the QR code, I get an error asking me if my computer has internet.
I'm running it from Azure, and if I'm trying to go to another website it's obviously working.
Do you have any idea what can be the error?

Hi @vilsonei I merged your script into mine, and tried to use it with multi-devices,
For some reason, after scanning the QR code, I get an error asking me if my computer has internet. I'm running it from Azure, and if I'm trying to go to another website it's obviously working.
Do you have any idea what can be the error?

Do you see any errors in the browser's debug console?

No.
I now noticed that if I delete the local storage and rescan the QR, it works, but after a restart, it happens again.

No. I now noticed that if I delete the local storage and rescan the QR, it works, but after a restart, it happens again.

You should analyze the moment you are injecting WAPI.js
WAPI.js should only be injected after WhatsApp is fully loaded so that the context variables are not lost or injected incorrectly.

Where can I control it?
Are there any required changes in async_driver.py or init.py?

Receving this message when calling sendMessage sendMessage JavaScript stack: TypeError: Cannot read properties of undefined (reading 'then') at Object.window.WAPI.sendMessage (eval at executeScript

Are you using this script? See script

Yes I am. Try adding a try/catch block  around the chat.sendMessage(message).then(function () { to catch the error, please.
window.WAPI.sendMessage = function (id, message, done) {
    var chat = WAPI.getChat(id);
    if (chat !== undefined) {
        if (done !== undefined) {
            try {
                chat.sendMessage(message).then(function () {
                    function sleep(ms) {
                        return new Promise(resolve => setTimeout(resolve, ms));
                    }

                    var trials = 0;

                    function check() {
                        for (let i = chat.msgs.models.length - 1; i >= 0; i--) {
                            let msg = chat.msgs.models[i];

                            if (!msg.senderObj.isMe || msg.body != message) {
                                continue;
                            }
                            done(WAPI._serializeMessageObj(msg));
                            return True;
                        }
                        trials += 1;
                        console.log(trials);
                        if (trials > 30) {
                            done(true);
                            return;
                        }
                        sleep(500).then(check);
                    }
                    check();
                });
                return true;
            } catch (e) {
                console.log(e);
            }

        } else {
            chat.sendMessage(message);
            return true;
        }
    } else {
        if (done !== undefined)
            done(false);
        return false;
    }
};

Receving this message when calling sendMessage sendMessage JavaScript stack: TypeError: Cannot read properties of undefined (reading 'then') at Object.window.WAPI.sendMessage (eval at executeScript

Are you using this script? See script

Tudo bem @vilsonei ? Conseguiu reproduzir o erro do sendMessage(msg).then ?

@vilsonei did you do any changes in order to save the session in multi-device mode?
I understood there is a different file that needed to be saved, but I don't know which one..

@vilsonei did you do any changes in order to save the session in multi-device mode?
I understood there is a different file that needed to be saved, but I don't know which one..

I didn't make any changes as I use the script with node and puppeteer, so I save the session in browser context.

window.Store.WapQuery.queryExist  not working anymore

Vilsonei, wich version do you use as base from your script?
If is possible, could you share your complete wapi.js?
I'm trying make your changes but I thing my initial version is not the same.

This is my lasted customized version: Link for download
There are some test codes I forgot to remove 😅

@vilsonei I just use your wapi.js in multi device version,but checkNumberStatus is always give true either number exist or not.

Thaks @vilsonei , this version worked or me.

it is stopped working, please help.

@vilsonei please share latest wapi.

@vilsonei please share latest wapi.

My API is customized for my business rule, but you can compare and utilize.  Click here

@vilsonei your code works for a while but then the message goes to the WhatsApp web platform and can't be delivered, and when restart the driver it works again, can you share with us your environment configs (python and selenium versions)? Thanks!

@vilsonei your code works for a while but then the message goes to the WhatsApp web platform and can't be delivered, and when restart the driver it works again, can you share with us your environment configs (python and selenium versions)? Thanks!

@vilsonei your code works for a while but then the message goes to the WhatsApp web platform and can't be delivered, and when restart the driver it works again, can you share with us your environment configs (python and selenium versions)? Thanks!

@yagoocarvalho I did not test in python and selenium environments, I use this script in one of my applications with puppeteer, so I can't give you this answer.

@vilsonei CheckNumberStatus not working ,its callback always in pending state.please help.

@vilsonei CheckNumberStatus not working ,its callback always in pending state.please help.

@Parveen-Mothsara compare your API with this one, check that the modules import is correct. If you've done this procedure and it still doesn't work, post your code here so we can take a look.

@vilsonei CheckNumberStatus not working ,its callback always in pending state.please help.

@Parveen-Mothsara compare your API with this one, check that the modules import is correct. If you've done this procedure and it still doesn't work, post your code here so we can take a look.

Thanks @vilsonei its work for me you are a true gem.

I recommend this project.
https://github.com/wppconnect-team/wa-js
I've migrate for them, the developers are really fast in resolve the problems on new versions.
And there is a way to use old versios while new versions are witout support

Hi @vilsonei can you help me to Download media from incoming message..
How we use downloadFileWithCredentials or downloadFile.

Hi @vilsonei can you help me to Download media from incoming message.. How we use downloadFileWithCredentials or downloadFile.

Hi @vilsonei Please reply,I need this..

Hi @Parveen-Mothsara, unfortunately I'm not using this function in WAPI.js.

Hi @Parveen-Mothsara, unfortunately I'm not using this function in WAPI.js.

Hello @vilsonei  any alternate available for download media.

there is a library that is working perfectly for me
https://github.com/jonalan7/Hydra-bot

Hi @vilsonei can you help me to Download media from incoming message.. How we use downloadFileWithCredentials or downloadFile.

Careful with that, in my experience even if the msg is created and distributed as "new message", the media could be not present or downloadable untill few ms/s after that. I had to use a retry function when downloading failed. The "download_with_credentials" thing just uses current cookie on the browser when downloading, which is in my opinion, the right way to download everything.

Hello, with the code bellow i can send messages to new ids without problem. There's just one weird thing about this function that its always returns "false". But the message is sent successfuly.
window.WAPI.sendMessageToID = function (id, message, done) {
    try {
        window.getContact = (id) => {
            return Store.WapQuery.queryExist(id);
        }
        window.getContact(id).then(contact => {
            if (contact.status === 404) {
                done(true);
            } else {
                if(typeof contact.jid === 'undefined') {
                        contact.jid = {
                            '_serialized' : id,
                            'server' : '@' + id.split('@')[1],
                            'user' : id.split('@')[0]
                        }
                 }
                Store.FindChat.findChat(contact.jid).then(chat => {
                    chat.sendMessage(message);
                    return true;
                }).catch(reject => {
                    if (WAPI.sendMessage(id, message)) {
                        done(true);
                        return true;
                    }else{
                        done(false);
                        return false;
                    }
                });
            }
        });
    } catch (e) {
        if (window.Store.Chat.length === 0)
            return false;

        firstChat = Store.Chat.models[0];
        var originalID = firstChat.id;
        firstChat.id = typeof originalID === "string" ? id : new window.Store.UserConstructor(id, { intentionallyUsePrivateConstructor: true });
        if (done !== undefined) {
            firstChat.sendMessage(message).then(function () {
                firstChat.id = originalID;
                done(true);
            });
            return true;
        } else {
            firstChat.sendMessage(message);
            firstChat.id = originalID;
            return true;
        }
    }
    if (done !== undefined) done(false);
    return false;
}

yeah its successfully sent the msg but in browsers console show many errors so can any have idea about this?

I made my own function about this, which is simply as "get current count of true_ messages, sent it, read messages again then return the last id of the sent message. Found no other way to return the id of the sent message, which i really needed.
Regarding your question:
Store.FindChat.findChat(contact.jid).then(chat => {
                    chat.sendMessage(message); // THIS RETURNS NOTHING
                    return true;
                }).catch(reject => {
                    if (WAPI.sendMessage(id, message)) { // THIS RETURNS NOTHING
                        done(true);
                        return true;

Note that sendMessage function is not returning anything, so your code simple returns what that function returned, which is falsy value. No matter if you call chat.sendMessage function or WAPI.sendMessage, they end up being the same.
If you apply what I said in this line:
<-- count before ->>
chat.sendMessage(message);
<<-- count aftter ->>

Then you can return what you need.
What you can't rely on is about if chat.sendMessage, which will be always false.
I can't share code right now, but that is the key here.

Hi @vilsonei ,
How are you , I need your expertise, I have got error "WAPI is not defined error" . when i re download chromium its works some time and again show error, Please help me how to solve this.Thanks .

Hi @vilsonei ,
You have any solution?

Thanks @vilsonei .


add feature_importances stub

This PR adds feature_importances stub and sets fallback to nothing. Models which overload this method must also overload the reports_feature_importances trait.
Requires:

[x] https://github.com/JuliaAI/StatisticalTraits.jl/pull/23

Note
feature_importances stub isn't exported in line with the goals set in this issue

Codecov Report

Merging #148 (ce672b9) into dev (280b1a9) will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##              dev     #148      +/-   ##
==========================================
+ Coverage   88.95%   88.99%   +0.03%
==========================================
  Files           8        8
  Lines         326      327       +1
==========================================
+ Hits          290      291       +1
  Misses         36       36

Impacted Files
Coverage Δ

src/MLJModelInterface.jl
100.00% <ø> (ø)

src/model_api.jl
70.00% <ø> (ø)

src/data_utils.jl
79.16% <0.00%> (ø)

src/metadata_utils.jl
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 280b1a9...ce672b9. Read the comment docs.


Fix build and publish pipeline

Currently the build and publish pipeline runs on all branches. That is not the desired behaviour and moreover annoying.
I'll have a go at this myself asap.

closed by #25


Update Copyright to 2024

Replace many 2023 Copyright dates with 2024
CLA: trivial

We only update the copyright year in the source files if a change has been made to that source file in that year. These updates happen automatically during the release process, so this PR is not necessary.


How to enable Engive V3 when creating with ARM template?

Doc shows only how to use portal to enabled V3 during cluster creation. Is it a way to do that using ARM template?
I tried to create V2 and V3 from portal and see differences in the exported template, unfortunately it's none.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ad6d867d-04e9-eb00-6186-27c15896f26e
Version Independent ID: 318da0c0-c574-981d-c2c2-6790e25ba492
Content: Azure Data Explorer Kusto EngineV3 (preview)
Content Source: data-explorer/engine-v3.md
Service: data-explorer
GitHub Login: @orspod
Microsoft Alias: orspodek

@kosinsky Thanks for your feedback. I have created a Work Item to update this document.
Duplicate of #453


cpu oveload after peer over 200

hi cpu load very high after number of peers over 200 can you help me ?

hi, this is due to the ping checks for each peer. Currently there is no easy way to disable this, but it will be improved in v2.

hi, this is due to the ping checks for each peer. Currently there is no easy way to disable this, but it will be improved in v2.

Hi, is it possible to disable the pings and have around 2000 peers? Or will be be toggle option or improved in the upcoming one?


CA2000 not ported/active

You list the rule under "Ported", but it is not active.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: dd01f814-2fb6-066f-bdae-c7070e5f22d7
Version Independent ID: 32f4ae71-bfb3-259f-0f10-bc56f184a9ad
Content: FxCop rule port status - Visual Studio
Content Source: docs/code-quality/fxcop-rule-port-status.md
Product: visual-studio-windows
Technology: vs-ide-code-analysis
GitHub Login: @gewarren
Microsoft Alias: gewarren

@anfangda Can you clarify what you mean by the rule is not active?

Hi, I think the real problem is that it does not trigger in our VS 2019. When I found Issue 476 being closed with a label called "Will-Not-Implement-Fixer", I thought it was not implemented yet. But now I see that all those Issues and versions are much more complex than I expected. It seems to be implemented and I have to find out why it doesn't work in our project. Sorry, not your problem ;-)

Got it - closing this issue in that case.


C program to calculate compound interest

Sir please accept and give my pull request "hacktober-accepted" lebel


🧑💻: Create Navbar for ML4E Project

Title
Create Navbar for ML4E Project
Enhancement Aim
Design and implement a responsive and user-friendly navigation bar (navbar) for the ML4E website. The navbar should provide quick access to the main sections of the site and enhance the overall user experience.
Goals:

Ensure the navbar is accessible and visually appealing.
Include links to primary sections (e.g., Home, Datasets, Models, Tutorials, Community, and About).
The navbar should be responsive for desktop and mobile views.

Changes
Tasks:

Design: Create a layout for the navbar that includes ML4E’s logo on the left and menu options on the right.
Links:

Home
Learn
Community (linking to Discussions or forums if available)
About

Responsive Design:

Ensure the navbar is mobile-friendly and changes layout on smaller screens.
Add a hamburger menu for mobile screens if needed.

Highlight Active Page: The active page link should be highlighted to improve navigation clarity.
Test: Verify that all links work correctly and that the navbar looks consistent across different screen sizes and browsers.

Acceptance Criteria:

Navbar includes links to all essential sections.
Navbar is fully responsive and accessible.
Active page is highlighted for improved navigation.
Code is clean, well-organized, and adheres to the project’s standards.

This issue should help set up the navbar as a core part of ML4E’s user interface! Let me know if you'd like additional details.
Screenshots 📷
For Reference:

Guidelines

[X] I have read the guidelines
[X] I have the link to my latest merged PR

Full Name
Aayan
Participant Role
Admin

Hello, I would like to work on this.
Thanks.

@AayusBhat26 okay!

Hey is this issue is still open i wanna work  on this

@UjjwalBaranwal someone is working on this issue. Don't worry we are creating new issues, contribute in them

I have completed the navbar
in addition to this, I have created the hero section for home page too.


⚠ SceneTime has degraded performance

In c4ea58b, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 18306 ms

Resolved: SceneTime performance has improved in a288d23 after 5 minutes.


Code are not being colored in the editor

I dont know if this is a bug or not, I use the theme "seti-ui" at the same time. I don't sure if it's about it.If there is a fix please let me know.

I've found a workaround that fixed this for me. If you create your own theme and just copy ALL the content from the seti-ui theme into your new custom theme it should work

My problem with this was I had an outdated version of atom.  I updated atom to the latest version, and then everything started working again.


Dash/Live HLS + IMA ads failing to play in Samsung Tizen browser or in iPhone simulation mode on Chrome Browser

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
Latest
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from master?
Yes
Are you using the demo app or your own custom app?
Demo app. Below is the url
https://shaka-player-demo.appspot.com/demo/#audiolang=en-GB;textlang=en-GB;uilang=en-GB;asset=https://storage.googleapis.com/shaka-demo-assets/bbb-dark-truths/dash.mpd;adTagUri=https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=vmap&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ar%3Dpreonlybumper&cmsid=496&vid=short_onecue&correlator=;panel=CUSTOM CONTENT;build=uncompiled
Both Dash url and HLS Live url is showing same error.
If custom app, can you reproduce the issue using our demo app?
NA
What browser and OS are you using?

Chrome Browser in iPhone simulation mode
Tizen browser on Samsung Tizen tv

For embedded devices (smart TVs, etc.), what model and firmware version are you using?
Samsung Tizen TV all versions
What are the manifest and license server URIs?
DASH Manifest: https://storage.googleapis.com/shaka-demo-assets/bbb-dark-truths/dash.mpd
HLS LIVE Manifest: https://storage.googleapis.com/shaka-live-assets/player-source.m3u8
Ad Tag:  https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=vmap&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ar%3Dpreonlybumper&cmsid=496&vid=short_onecue&correlator=
What configuration are you using?  What is the output of player.getConfiguration()?
Using demo app out of the box
What did you do?

1.Go to https://shaka-player-demo.appspot.com/demo/#audiolang=en-US;textlang=en-US;uilang=en-US;panel=CUSTOM CONTENT;build=uncompiled
2. Add a DASH  or HLS live content
3. Add a IMA ad tag
4. Play the content
What did you expect to happen?
Ads should play followed by content
What actually happened?
Ads and content fails to play
Below error is seen on console
failed to get buffered range for video DOMException: Failed to read the 'buffered' property from 'SourceBuffer': This SourceBuffer has been removed from the parent media source.
    at shaka.media.MediaSourceEngine.getBuffered_ (https://shaka-player-demo.appspot.com/lib/media/media_source_engine.js:476:47)
    at shaka.media.MediaSourceEngine.bufferedAheadOf (https://shaka-player-demo.appspot.com/lib/media/media_source_engine.js:435:29)
    at shaka.media.StreamingEngine.update_ (https://shaka-player-demo.appspot.com/lib/media/streaming_engine.js:963:49)
    at shaka.media.StreamingEngine.onUpdate_ (https://shaka-player-demo.appspot.com/lib/media/streaming_engine.js:885:26)
    at shaka.util.DelayedTick.onTick_ (https://shaka-player-demo.appspot.com/lib/media/streaming_engine.js:1850:20)
    at onTick (https://shaka-player-demo.appspot.com/lib/util/delayed_tick.js:56:14)

NOTE
Actual issue is happening on Tizen app / browser on Samsung Tizen tv.
Same issue can be reported with Chrome browser in iPhone 6/7/8 simulation mode

The Tizen part is likely related to https://github.com/google/shaka-player/issues/2792

This will be resolved with https://github.com/shaka-project/shaka-player/issues/2792


Searchbar and hero section text is not reponsive in mobile device

Searchbar and hero section text is not reponsive in mobile device..Can you assign this issue to me under GSSOC'23?

Please describe the problem
Why do you want to add this feature?
Describe the solution you'd like
A clear and concise description of what you want to happen.
Screenshot
Please attach any relevant screenshot(s).

I would like to solve this issue

Can you assign this issue to me under GSSOC'23?


[Actions] push trigger event does not work properly

Description
Reported in QQ group by [EOF] .
If a workflow has on like
on:
  push:
    tags-ignore:
      - '**'
    paths:
      - 'project.yaml'

The workflow cannot be triggered after editing project.yaml
Gitea Version
main
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
cmd
Database
None

It looks like a combination problem, and it is fine to use only the following code.
on:
  push:
    paths:
      - 'project.yaml'

ref: https://packages.d7z.net/packages/gitea/actions/runs/37

It looks like a combination problem, and it is fine to use only the following code.

Yes. The reason for this bug is that we are not handling tags-ignore correctly

Hmmm I think I'm misunderstanding the on.push.tags-ignore event trigger. This is the expected behaviour according to the documentation

If you define only tags/tags-ignore or only branches/branches-ignore, the workflow won't run for events affecting the undefined Git ref.

So in the case you describe, the workflow is not expected to run and it's not bug. I have tested a similar workflow on GitHub and it didn't get triggered either. I will close this issue and #25723 since it's not a bug. Please feel free to reopen if you need more help.


Refactor framework coverage tests

Refactor framework coverage tests in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing framework coverage tests
Part of https://github.com/flutter/flutter/issues/145482
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] I followed the breaking change policy and added Data Driven Fixes where supported.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Holding off on merging this until the util refactor from https://github.com/flutter/flutter/pull/146592 is ironed out and lands


Feature/3622 3623 translations

This tiny translation PR covers the translation texts of the JIRA Tickets 3622 and 3623.

Hi @SwissMountainFrog  - sorry for the back and forth.


How can we use request lib in Browser?

I tried a lot of things to use the request lib inside the browser using JSPM. But something wrong happened, it always threw an exception like
Node tls module not supported in browsers
How can I make it work or work around to overcome this issue?
I have posted a question at Node tls module not supported in browsers

Try with browserify or webpack.

@simov: request doesn't work with webpack out of the box either, but there are some workarounds.


[$500] Chat - Strikethrough ~ is not applied when create message in different markdown combination

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.85-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Login with any account
Type a message bold italic bold
Tap on Edit message
Edit a message to bold ~italic bold~

Expected Result:
Strikethrough text should be displayed
Actual Result:
Strikethrough text is not displayed, only markdowns are visible
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/78819774/d25171d6-d416-4923-b199-c4b5bbd5361b

MacOS: Desktop

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0163a4e01015c57126
Upwork Job ID:<PHONE_NUMBER>536427008
Last Price Increase: 2023-10-17

Hello,
My name is konno.
I'm from Japan and I'm a senior mobile developer who experience 5+ years React Native.
I'm very interested in this React Native project.
For this issue I can use some React modules for frontend edit.
this project is not expo.
I know perfect projects are all developed React CLI not expo.
please invite me on slack so that I join this project.
this is my gmail.
<EMAIL_ADDRESS>this is my github.
github.com/kstar0102
I focused your working on upwork for 6 months.
your working style is awesome!.
please contact me so that I start.
Thanks.

@greg-schroeder @allroundexperts
it's expected behavior. I've checked on github and discord..

I don't think this is a bug

I don't think it is either, I'm going to close this.


net: IPNet.String panics with nil receiver

What version of Go are you using (go version)?
1.15.5
Does this issue reproduce with the latest release?
YES
What operating system and processor architecture are you using (go env)?
go env Output
$ go env

What did you do?
panic, if IPNet is nil
func (n *IPNet) String() string {
	nn, m := networkNumberAndMask(n)
	if nn == nil || m == nil {
		return "<nil>"
	}
	l := simpleMaskLength(m)
	if l == -1 {
		return nn.String() + "/" + m.String()
	}
	return nn.String() + "/" + uitoa(uint(l))
}

What did you expect to see?
IPNet.String() should not panic, even IPNet is nil
What did you see instead?
    panic(0x194abc0, 0x2156090)
        	/usr/local/go/src/runtime/panic.go:969 +0x1b9
        net.networkNumberAndMask(0x0, 0x0, 0x10, 0x23bb108, 0xc000123d30, 0xc00003ed00, 0xc000077dd0)
        	/usr/local/go/src/net/ip.go:476 +0x26
        net.(*IPNet).String(0x0, 0xc00011f470, 0x18eed80)
        	/usr/local/go/src/net/ip.go:526 +0x45

While in general the standard library is happy to panic when invoked on an invalid value, I agree that perhaps the String method should not do so.


Fixes for React 16 and RN 50

Switched from React.createClass to createReactClass (create-react-class package).
Switched from React.PropTypes to PropTypes (prop-types package).
Updated dependencies for forked react-native-view-transformer.

Looks good 👍


unattended installation WIP

Hi,
at the current state, the setup process is very interactive and makes active changes in the target system.
This makes it absolutely unusable for an unattended installation via chief/puppet/saltstack/ansible.
In this PR, I am trying to offer a second installation option that

does not install any packages or change configuration of existing packages
has no interaction, but receives all configuration options either per environment variable or command line argument

This is far from usable or finished, but I wanted to know your opinon on this. (I haven't even tried to run it so far.)
Do you like the direction I am going with this? Should I do something differently? Should I drop it completely?
Your feedback please.

Good idea!
Are you willing to assist with this project? Since I started it, I've moved on from admin to engineering, so don't have as much time to work on non-work stuff. That will change next week, as they want to use my tool in their environment, but I will have to re-tool it for chef to implement in-house.
If you're willing, I'm willing to throw you in back-end.

No, this is more one of those "I want to install this, but it's completely screwing up my system, so I'm cleaning it up" moments.
I may stick with the project for a while or check back from time to time but I don't have the spare time to really commit myself to another project.

I completely understand.
Thanks!  I will start working on a cook book for this in the next week.

I guess by then there will be a working cli installer, which should make that a lot easier ;)
One thing though: I'm a debian/ubuntu guy, so you'll have to double-check the RHEL-specific stuff. I mainly copy-pasted & cleaned that part.
Also you might have a differeing opinion on whether mysql should be installed on the target system.

Okay. This now requires a ton of command line options, but it should run without having to change too much existing code.
It should be possible to call this with
install.sh --unattended-install --force --db-host [VALUE] --db-root-id [VALUE] --db-root-pass [VALUE] --db-user [VALUE] --db-pass [VALUE] --db-name [VALUE] --new-web-admin [VALUE] --new-web-admin-email [VALUE] --adm-passwd [VALUE] --new-web-duser [VALUE] --new-web-duser-email [VALUE] --usr-passwd [VALUE] --comp-id [VALUE] --your-company [VALUE] --installation-key [VALUE] --relative-path [VALUE] --new-web-dir [VALUE] --web-user

to get a clean install that overwrites new_web_dir.
Gonna test that tomorrow in the evening.

short question: is your bash really a bash or is there maybe some derivate symlinked to /bin/bash ?
some things there do not seem to work for me, and I've checked, I'm using bash ;)
[ "${new_relative_path:LEN}" != "/" ];

does not check the last character.
[ "${relative_path: -1}" != "/" ]

does.

Actually, the installer was almost completely written by metalcated.  Mine was much simpler, but his was more full-featured, albeit complex.

I don't want to critizice, but you might consider going back to something more simple.
It's cool, I'll give it that, but it does horrendous things to a system.
It installs packages, sometimes without asking.
It even modifies iptables without asking, which will completely break everything if something like shorewall or ferm is installed.

Also it is doing a bit too much hand-holding.
I doubt a system administrator really wants a package that configures other packages for him - but that's just my opinion.
In my opinion checking for certain pre-requisites should be enough.

I'm fine with change.  I do agree it needs to be more aware, and unattended, so with that in mind, when I start my code push next week, I'll do it with that in mind (that, and merging the front-end with vFense back-end, as his back-end does some amazing things).  I will keep my back-end, but I will be forking my front-end to work with vFense API calls.  This will improve my front-end code while improving the overall look and feel of vFense.
But with all that said about the front-end, if it can't be installed easy, safely, in a sane fashion, and in an automated DevOps approach, there's no real point to it, because it misses the target audience.

On the automation part, it's going forward.
I'm doing some tests right now and I think with a few more small changes this deploys right from saltstack.

Okay, It didn't need any more changes, it IS deploying correctly from saltstack.
Here's a salt state if you want to test it (quick&dirty):
{% for pkg in ['apache2', 'apache2-threaded-dev', 'apache2-utils', 'php5', 'libapache2-mod-php5', 'php5-mcrypt', 'php5-common', 'php5-gd', 'php5-cgi', 'php5-cli', 'php5-fpm', 'php5-dev', 'php5-xmlrpc', 'mysql-client', 'php5-mysql', 'php5-sybase', 'libapache2-mod-auth-mysql', 'libmysqlclient-dev', 'curl', 'mysql-server']%}
patchdashboard package {{pkg}}:
  pkg.installed:
    - name: {{pkg}}
{% endfor %}

{% for svc in ['apache2' ]%}
patchdashboard service {{svc}}:
  service.running:
    - name: {{svc}}
{% endfor %}

patchdashboard mod_rewrite:
  apache_module.enable:
    - name: rewrite
    - watch_in:
      - service: patchdashboard service apache2

patchdashboard apache.conf salt_block:
  cmd.run:
    - name: "sed -i '/<\\/VirtualHost>/i  ###SALT_BLOCK_START\\n###SALT_BLOCK_END' /etc/apache2/sites-available/000-default.conf"
    - unless: "grep -q SALT_BLOCK_START /etc/apache2/sites-available/000-default.conf"

patchdashboard apache allow_override:
  file.blockreplace:
    - name: /etc/apache2/sites-available/000-default.conf
    - marker_start: "###SALT_BLOCK_START"
    - marker_end: "###SALT_BLOCK_END"
    - content: |
       <Directory /var/www/html>
       AllowOverride All
       </Directory>
    - show_changes: True
    - watch_in:
      - service: patchdashboard service apache2
    - require:
      - cmd: patchdashboard apache.conf salt_block

patchdashboard repo:
  git.latest:
    - name: https://github.com/phryneas/patchdashboard.git
    - rev: 6393074e5d7a4fe420bd739aa890c08b3b33c802
    - target: /tmp/patchdashboard

patchdasboard ssh-keygen:
  cmd.run:
    - unless: "test -f /root/.ssh/id_rsa"
    - name: "ssh-keygen -f /root/.ssh/id_rsa -t rsa -N ''"

patchdashboard install:
  cmd.run:
    - unless: true
    - name: |
        {% raw %}
        cd /tmp/patchdashboard/; ./install.sh --unattended-install --force \
        --db-host localhost --db-root-id $(sed -n 's/user\s*=\s*//p' /etc/mysql/debian.cnf | head -n1)  --db-root-pass $(sed -n 's/password\s*=\s*//p' /etc/mysql/debian.cnf | head -n1) \
        --db-user testuser --db-pass testpass --db-name testdb \
        --new-web-admin webadmin --new-web-admin-email<EMAIL_ADDRESS>--adm-passwd webadmpass \
        --new-web-duser webuser --new-web-duser-email<EMAIL_ADDRESS>--usr-passwd usrpass \
        --your-company power \
        --installation-key somekeyiguess \
        --relative-path /test --new-web-dir /var/www/html/test/
        {% endraw %}

oh, and please don't merge this, this still needs cleaning up and it just does the installation, no upgrades or anything.

okay, that was a tad too early ;)
now accounts are set up properly  it is possible to log in.
I'm updating the salt formula in place.

okay, in theory this should be it, but it hasn't been tested yet. will do the final testing tomorrow.

okay.
everything should be working now. could you take a look?

:+1: adding. Sorry. I've been trying to figure out the best way to proceed.  Planning on creating cookbook and test kitchen for this tonight.


gh-actions: Build release bin file

So that it can be flashed by a programmer in the factory.

Confirmed to work.


Distribute executables via Pyinstaller

I added a .spec file that allows to bundle Chatalysis into one executable file (closes #44). I also modified the resource paths so that the executable would work from any directory. The generated .exe works both on my computer (Windows 10 Home, 64bit, x86-64) and my roommates computer (Windows 11, 64bit, x86-64), you can try it on your Mac.
There are some drawbacks though:

the pyinstaller executable doesn't support custom profile pictures added by the user (technically it does, but it's complicated)
the .exe is getting flagged as malware by some antiviruses (9/72 on VirusTotal)

Rebased on top of master, seems to be working. Also worked around the issue of antivirus complaining by running the executable via a .bat script. I made a script which just runs the .exe file and a script pair, which runs the program using system Python in case there were still some antivirus issues.
This will make it much easier non tech-savvy users to install / runs, but will make the distribution process a bit more complicated.

Works on Windows and Linux.

Added the icon to the GUI (it will probably only appear on Windows) and moved the path variables such as HOME to a separate file, paths.py. Also rebased on top of master.

Tested on my friend's computer - both the .exe itself and the batch script are working. @stepva tested it on a different Mac and said it was working as well. I think we're ready to merge. We will have to create packages for various operating systems but we can deal with that later - now it's just a matter of adding the functionality to the master.

closes #92 by setting czech locale as default (to have spaces between thousands in output)


get_method_list() returns wrong information about methods in GDScript

Godot version
v3.2.4.rc1.official
System information
Windows 10
Issue description
As a quick declaration before further investigation, get_method_list() returns everything correctly on engine declared methods, but it does not on GDScript's. There, properties of arguments revert to defaults, like the name property gets arg0, arg1, ..., same as the types, hints, ...
To further clarify, here's a screenshot from a function I created in GDScript explicitly mentioning the type and the default value:

On a breakpoint after declaration of the variable "method", (= "test" from get_method_list())
You can first see that the variable with type int (= 2) just gets 0, same as the hint, hint_string, and the usage, which is always 7. This too applies on the second and third argument. (They are exactly thesame exept for the name: arg1 and arg2)

The default arguments, (the second and third argument on the method "test"), also do not appear.

And as you might've guessed, the "return" specifications also does not represent the one in the method.

Here: #33624 is another issue describing thesame problem.
Steps to reproduce
Create a method which you call in de ready function that

firstly iterates upon the get_method_list() in a for loop and stores the specific function, in my case "test", in a variable:

Then, create a breakpoint, or type breakpoint after the for loop:

Finally, run the project and examine the results in the debugger.

Minimal reproduction project
Here: Minimal Reproduction Project of get_method_list() bug.zip you can find the minimal reproduction project.
There are comments in the Script.gd:

Check for the Dictionary "method" in Locals in the debugger when you run the project.
There, you can open "args", "default_args" and the "return" specifications.

Duplicate of #33624.

Duplicate of #33624.

The other issue is similar, but its not a duplicate. My confusion came from it being tagged topic:core, and mine is topic:gdscript, so I thought I could make a new one, and make it a bit more tidy than the previous xD

I added the "topic:gdscript" because it's the GDScript implementation of that method that has the bug. Other modules like VisualScript implemented the method but seems work fine.
It's fine to open an issue if you're not sure whether it's a duplicate :)


fix(Typos in artifacts #70): Update Artifact Names

Updated some artifact names to reflect their in-game name and made quotes consistent.

#69 insert obligatory le giggle here.

On the commit message could you update it to reflect the conventional commits format ?
i.e
fix(Typos in artifacts #70): something something..

@DasithKuruppu happy to see more adopt conventional commits! This should be good to merge?

@DasithKuruppu happy to see more adopt conventional commits! This should be good to merge?

Merged it. Appreciate it !


⚠ Slack has degraded performance

In c8222b5, Slack (https://status.slack.com/api/v2.0.0/current) experienced degraded performance:

HTTP code: 200
Response time: 165 ms

Resolved: Slack performance has improved in aea510a.


Simplify dataset definitions in the view config

User story
In #1128 and the recent meeting, I proposed breaking up our current data types into several simpler data types (see diagram and config proposals). However, if we were to go forward with this, it introduces the problem that it becomes more difficult to define datasets because there are more file definitions required to tell Vitessce about the same information as the current view config schema file definitions allow.
I think there are several ways that we can solve this problem, some of which are probably not mutually exclusive.
I will propose some solutions in the comments of this issue.

Do not require type in file definitions
This would be a very simple change and would be complementary to the other solutions, to remove type from the required properties in the file definition schema. Currently type (data type) is redundant with fileType. As long as each file type only maps onto one data type, we can just keep a mapping internally (and in our documentation) but do not need to require it in the view config itself.
const fileTypeToDataType = {
  'cells.json': 'cells',
  'anndata-cells.zarr': 'cells',
  'molecules.json': 'molecules',
  'clusters.json': 'expression-matrix',
  'anndata-expression-matrix.zarr': 'expression-matrix',
  'expression-matrix.zarr': 'expression-matrix',
  'raster.json': 'raster',
  'raster.ome-zarr': 'raster',
  ...
};

Besides being redundant, I think the property being called type rather than dataType is confusing anyway.

Add "convenience" file types
We could add "convenience" file types which expand one file definition into multiple file definitions.
For example, we could add an anndata.zarr convenience file type:
{
  "fileType": "anndata.zarr",
  "options": {
    "obsFeatureMatrix": "X",
    "obsIndex": "obs/index",
    "featureIndex": "var/index"
  },
  "type": "convenience",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "featureType": "antigen",
    "featureValueType": "expression"
  }
}

would expand into
{
  "fileType": "anndataObsIndex.zarr",
  "options": {
    "path": "obs/index"
  },
  "type": "obsIndex",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell"
  }
},
{
  "fileType": "anndataFeatureIndex.zarr",
  "options": {
    "path": "var/index"
  },
  "type": "featureIndex",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "featureType": "antigen"
  }
},
{
  "fileType": "anndataObsFeatureMatrix.zarr",
  "options": {
    "path": "X"
  },
  "type": "obsFeatureMatrix",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "featureType": "antigen",
    "featureValueType": "expression"
  }
}

in initializeAuto()

Add "convenience" file types supporting obsEmbedding option with array value
{
  "fileType": "anndata.zarr",
  "options": {
    "obsFeatureMatrix": "X",
    "obsIndex": "obs/index",
    "featureIndex": "var/index",
    "obsEmbedding": [
      { "path": "obsm/X_umap", "dims": [0, 1], "embeddingType": "UMAP" },
      { "path": "obsm/X_tsne", "dims": [0, 1], "embeddingType": "t-SNE" },
      { "path": "obsm/X_pca", "dims": [0, 1], "embeddingType": "PCA" },
     ]
  },
  "type": "convenience",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "featureType": "antigen",
    "featureValueType": "expression"
  }
}

would expand into
{
  "fileType": "anndataObsIndex.zarr",
  "options": {
    "path": "obs/index"
  },
  "type": "obsIndex",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell"
  }
},
{
  "fileType": "anndataFeatureIndex.zarr",
  "options": {
    "path": "var/index"
  },
  "type": "featureIndex",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "featureType": "antigen"
  }
},
{
  "fileType": "anndataObsFeatureMatrix.zarr",
  "options": {
    "path": "X"
  },
  "type": "obsFeatureMatrix",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "featureType": "antigen",
    "featureValueType": "expression"
  }
},
{
  "fileType": "anndataObsEmbedding.zarr",
  "options": {
    "path": "obsm/X_umap",
    "dims": [0, 1]
  },
  "type": "obsEmbedding",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "embeddingType": "UMAP"
  }
},
{
  "fileType": "anndataObsEmbedding.zarr",
  "options": {
    "path": "obsm/X_tsne",
    "dims": [0, 1]
  },
  "type": "obsEmbedding",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "embeddingType": "t-SNE"
  }
},
{
  "fileType": "anndataObsEmbedding.zarr",
  "options": {
    "path": "obsm/X_pca",
    "dims": [0, 1]
  },
  "type": "obsEmbedding",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "embeddingType": "PCA"
  }
}

Add data types corresponding to pre-defined coordinationValues objects
At the very least, for cell-by-gene use cases, pre-defined the following data types:

cellIndex, cellColumn, cellEmbedding, cellLocations -> { obsType: "cell" }
cellByGeneMatrix ->  { obsType: "cell", featureType: "gene", featureValueType: "expression" }

Then we just need to specify type: "cellIndex" rather than type: "obsIndex", coordinationValues: { ... }
{
  "fileType": "anndataCellIndex.zarr",
  "options": {
    "path": "obs/index"
  },
  "type": "cellIndex",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr"
}

or for cellEmbedding, only need to specify embeddingType (the rest would be filled in from the pre-defined values for the cellEmbedding data type)
{
  "fileType": "anndataCellEmbedding.zarr",
  "options": {
    "path": "obsm/X_umap"
  },
  "type": "cellEmbedding",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": { "embeddingType": "UMAP" }
}

Here I am proposing that the expansion of "convenience" data types and file types happens at the view config initialization stage, and then the internal usage or manipulation of the view config after that point would be performed on the "expanded" version.

Combining "convenience" file types and pre-defined coordinationValues objects
These two solutions together might look like:

anndataCellByGene.zarr -> { obsType: "cell", featureType: "gene", featureValueType: "expression" }

The user would only need to specify:
{
  "fileType": "anndataCellByGene.zarr",
  "options": {
    "obsFeatureMatrix": "X",
    "obsIndex": "obs/index",
    "featureIndex": "var/index",
    "obsEmbedding": { "path": "obsm/X_umap", "dims": [0, 1], "embeddingType": "UMAP" }
  },
  "type": "convenience",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr"
}

which would first expand into:
{
  "fileType": "anndata.zarr",
  "options": {
    "obsFeatureMatrix": "X",
    "obsIndex": "obs/index",
    "featureIndex": "var/index",
    "obsEmbedding": { "path": "obsm/X_umap", "dims": [0, 1], "embeddingType": "UMAP" }
  },
  "type": "convenience",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "featureType": "gene",
    "featureValueType": "expression"
  }
}

and then
{
  "fileType": "anndataObsIndex.zarr",
  "options": {
    "path": "obs/index"
  },
  "type": "obsIndex",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell"
  }
},
{
  "fileType": "anndataFeatureIndex.zarr",
  "options": {
    "path": "var/index"
  },
  "type": "featureIndex",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "featureType": "gene"
  }
},
{
  "fileType": "anndataObsFeatureMatrix.zarr",
  "options": {
    "path": "X"
  },
  "type": "obsFeatureMatrix",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "featureType": "gene",
    "featureValueType": "expression"
  }
},
{
  "fileType": "anndataObsEmbedding.zarr",
  "options": {
    "path": "obsm/X_umap",
    "dims": [0, 1]
  },
  "type": "obsEmbedding",
  "url": "https://assets.hubmapconsortium.org/.../some_anndata.zarr",
  "coordinationValues": {
    "obsType": "cell",
    "embeddingType": "UMAP"
  }
}

We could also pre-define coordination values for views if we allow views to have fixed coordinationValues in addition to the dynamic coordinationScopes.
Then { component: "scatterplotCellUMAP" } would become { component: "scatterplot", coordinationValues: { obsType: "cell", "embeddingType": "UMAP" } }

Add view types corresponding to pre-defined coordinationValues objects
Analogous to what I described above for file types, we could also pre-define coordination values for view types.
We would also need to allow views to have coordinationValues in addition to coordinationScopes.
Then
{
  component: "scatterplotCellUMAP"
}

would become
{
  component: "scatterplot",
  coordinationValues: {
    obsType: "cell",
    embeddingType: "UMAP"
  }
}

coordinationValues for views
Adding a coordinationValues property for view definitions is something that we could do immediately. It would simplify these types of exchanges where someone wants to modify a value for a single view and must use coordinationScopes despite not actually needing "coordinated multiple views"

What exactly would this look like in practice for us? There doesn't seem to be any string splitting mechanism in the PR, so that's just an example of how we could implement this?  I see the issue for files but not as much for components....I get that this would make things simpler but as I've brought up, we should clarify how much of a goal this is.  In other words if we start hardcoding useful defaults into the repo's mechanism for initializing view configs, isn't this better done in a wrapping API that we expose?

There doesn't seem to be any string splitting mechanism in the PR

I am not proposing any kind of string splitting, I think that could get very messy. I would propose implementing this through adding a predefined list of "convenience view types". I would just go for the most common use case of cell-by-gene (scRNA-seq) and the three dimensionality reduction methods implemented in scanpy. For the scatterplot, this would only require three JS functions and three more Component constants:

scatterplotCellUMAP
scatterplotCellTSNE
scatterplotCellPCA

In practice it would look similar to this, a list of names which map to functions that just fill in the coordinationValues property for a view definition object.
If people wanted to add extra custom ones they could implement them externally using a plugin mechanism like I was proposing for convenience file types

Maybe it makes sense to allow the config to be some sort of complicated, extremely well-specified thing that is somewhat unreadable because people should be using API's to make them.

Copying my comments from the spatial omics meeting agenda document here:
I agree that it would be more straightforward to maintain at the object-oriented API level. For instance we would just add a python function that calls the existing add_file function multiple times:
class VitessceConfig:
  # ...
  def add_file(self, data_type, file_type, url=None, ...):
    # ...
  def add_cells_csv(self, url, embedding_types=[]):
    self.add_file('obsIndex', 'obsIndex.cells.csv', url=url, obs_type='cell')
    self.add_file('obsLocations', 'obsLocations.cells.csv', url=url, obs_type='cell')
        for embedding_type in embedding_types:
            self.add_file('obsEmbedding', 'obsEmbedding.cells.csv', url=url, obs_type='cell', embedding_type=embedding_type)

I think that it is a bit more complicated now that we have the to_python function being used for the HuBMAP notebook generation. A longer JSON view config would translate into more python code being generated, at least the way we are doing it currently. There would be no way for the to_python function to know that a "convenience" function called the add_file function multiple times when the view config was originally constructed.
I guess the question then is whether we are fine with those extra generated add_file function calls from to_python or not. If not, do we want the solution to be at the JSON level with convenience file types or do we need to solve it a different way (for instance, by changing the implementation of to_python)

Another thing to consider is that even if we decide to implement convenience functions at the API level initially, it doesn't prevent us from coming back and implementing convenience file types at the JSON level later.
For instance maybe we live with the extra add_file calls from to_python for a while but then they go away at some point down the line if we later decide to implement convenience file types in the Vitessce core.


Firefox web store mixes up alpha and beta

The title on the Firefox web store (https://addons.mozilla.org/en-US/firefox/addon/uproxy-firefox/) says "uProxy Alpha", but when you click to install you see the name as "uProxy Beta"

Fixed in release candidate branch and master.


List of Template from Api

Hi people,
I'm migrating from mandrill to SparkPost
Does anyone know how to recover my templates from the Api in SparkPost?
In Mandrill there is a method called ListTemplates, but here I can not find anything.
Thank's!!!

It's not in this library yet -- someone will have to code it.
Templates could be implemented similar to #35 .
Do you need this via an API?  I thought Templates would probably be the last feature implemented in this library, as template management is handled very well through the SparkPost UI.

Thanks for the reply
I have solved making a call cURL.
I have an email delivery system and is easier to load into a combo templates and send emails loading a excel.
The example of the call if someone needs
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.sparkpost.com/api/v1/templates");
request.Headers.Add("Authorization","MY_AUTHORIZATION");
request.Accept = "application/json";
using (var responseURL = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(responseURL.GetResponseStream()))
{
var objText = reader.ReadToEnd();
var myObjResponse = JsonConvert.DeserializeObject(objText);
}
}

Hey Darren
I just started writing in templates support. The "Create" feature is complete. I realised I should probably ask you before I finish/polish, to check that I'm on the right track - I don't generally work with Interfaces, and the datamapping code is pretty fancy, but I think I've got it right
If you could please check it out that'd be great. Thanks.
https://github.com/jamesoflol/csharp-sparkpost/tree/templates-support

@jamesoflol I think yo uare definitely on the right track.
I created a PR from your code and this codebase for checking at https://github.com/SparkPost/csharp-sparkpost/pull/40/files.  I think you'll need to try another branch to get this feature added.  Are you working on OSX or Linux with Mono?  It seems that every file you touched was changed entirely, probably via end-of-line character change?
For comparison, look at  https://github.com/SparkPost/csharp-sparkpost/pull/35/files.  I'm adding a similar feature, yet you only see the changes I've made.
Here is a line that might help on handling end-of-line with git. I love you addition and would love to accept the PR, but I can't merge such a drastic change to so many files.
https://help.github.com/articles/dealing-with-line-endings/

Hey Darren,
Thanks very much for the feedback.
I feel like a fair bozo for not checking the adds/deletes in Github. They looked fine in VS. I'm using VS 2015 on Win10. Turns out my VS was turning all line endings in to CRLF, and as you said, gratuitously doing it to every file I touched. All existing EOL seem to be LF.
I've made a new branch and copied the changes in, in order to prevent mucho pollution. All additions, no deletions. I've put in a .gitattributes file that forces LF.
#44
I'm not quite sure why it says there are conflicts when there's only additions and no deletions?

Oh and one other thing - There was a message saying there are conflicts, even though it's all additions and no deletes... Is this because your repo is 10 commits ahead of mine? Should I be pulling in your latest changes to my branch immediately before making a pull request back to you?

Just git pull origin master into your branch... I bet the merge conflict is in the project file, just include all lines.
Or if you want, I can resolve it on this side.... I'll just need to create a new branch before we merge.
Get Outlook for iOS
On Thu, Apr 21, 2016 at 11:05 PM -0700, "jamesoflol"<EMAIL_ADDRESS>wrote:
Oh and one other thing - There was a message saying there are conflicts, even though it's all additions and no deletes... Is this because your repo is 10 commits ahead of mine? Should I be pulling in your latest changes to my branch immediately before making a pull request back to you?
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub

Nah it's cool - ill merge and fix on monday. Thanks
On Fri, Apr 22, 2016 at 2:17 PM -0700, "Darren Cauthon" <notifications<EMAIL_ADDRESS>wrote:
Just git pull origin master into your branch... I bet the merge conflict is in the project file, just include all lines.
Or if you want, I can resolve it on this side.... I'll just need to create a new branch before we merge.
Get Outlook for iOS
On Thu, Apr 21, 2016 at 11:05 PM -0700, "jamesoflol"<EMAIL_ADDRESS>wrote:
Oh and one other thing - There was a message saying there are conflicts, even though it's all additions and no deletes... Is this because your repo is 10 commits ahead of mine? Should I be pulling in your latest changes to my branch immediately before making a pull request back to you?

You are receiving this because you commented.
Reply to this email directly or view it on GitHub

You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHubhttps://github.com/SparkPost/csharp-sparkpost/issues/37#issuecomment-213591560

Why, I believe this is done! :smile:


bad line in install instructions

sudo -u psql -c "ALTER USER $PSQL_MY_USERNAME WITH SUPERUSER"
should be:
sudo -u postgres psql -c "ALTER USER $PSQL_MY_USERNAME WITH SUPERUSER"
:sunglasses:

I addressed the issue in this PR: https://github.com/macintoshhelper/learn-sql/blob/postgresql/setup/refactor/postgresql/setup.md
Does this solve the issue?

@morkeltry @macintoshhelper Can we close this issue now that it has been addressed?


Filter Images by Minimum Rating

Hey i have tried to resolve the conflict can please help me.

I got it i have resolved issues

Hey @KANDUKURIsaikrishna, great work! A pull request (#17) was merged, which implemented logging in image_manager.py and caused merge conflicts with your PR. Please resolve these conflicts and then ping me. 😄

Hey @iamDyeus I have resolved the conflict. Please have a look at it

Looks great to me!


Move GH pages to server

Move from GitHub pages to it's own server on the domain nowsearch.xyz

Or check out if it is possible to use the GitHub page but with the nowsearch.xyz domain?

GH-pages are okay for now.


Docs: Fixed the ordering of releases in releases page

Signed-off-by: Arunagirinadan Sudharshan<EMAIL_ADDRESS>Description
This PR fixes the ordering of releases in release page and modified release-drafter workflow file to add 'date' front matter in future automated release note .md files.
This PR fixes #2126
Notes for Reviewers
Signed commits

[ x] Yes, I signed my commits.

Hello! :)

@leecalcote Thank you for completing it.


cmd: compute costs in background

This commit changes the project to compute costs in the background and
store the resulting metrics in a cache. Metrics are then served from
this cache to avoid unnecessarily long computations during scraping.
This change has the added benefit of allowing the removal of time limits
on the database query, since they entire processing occurs in the
background.
Fixes: #2
Signed-off-by: Lucas Servén Marín<EMAIL_ADDRESS>

Thank you for your contribution! I will take a look this weekend, will fix the build (if it needs fixing) and update outdated dependencies.

@squat Please rebase your changes onto main.  I tested the build after the manual merge, it should be good.
I will then update all outdated dependencies in go.mod/go.sum and release 0.4.0.

@st8ed thanks for the comments. I think that your suggestions help make sure the project does not fail silently, which could lead to unexpected surprises in AWS costs at the end of the month. Please take a look at the updates once you have time.

One additional change that can be made now is modifying the scrape interval in the ServiceMonitor from 10 minutes down to a more typical 15 seconds, and even eliminating that as a configuration option from the helm templates, since it no longer really impacts performance / load.

However, I'd leave that for a follow up :)

🎉🎉🎉


Suggestion: Scaffold invocation on multiple lines.

The existing feature is really great and useful. Any chance we can get some styling while scaffolding?
Something similar to the usage below. Basically, the ability to scaffold arguments on separate lines.
public AddressDto GetAddress1()
{
    return new AddressDto(street: "lorem ipsum", city: "lorem ipsum", country: "lorem ipsum");
}

public AddressDto GetAddress2()
{
    return new AddressDto
    (
        street: "lorem ipsum",
        city: "lorem ipsum",
        country: "lorem ipsum"
    );
}

I'm not familiar with VS extension eco-system, so I have no idea if this is a trivial thing, or if it requires substantial effort.
I just think would be a really nice feature to have. At least in my perspective :)

I will try to look at this over the weekend.

The premium version contains an advanced method invocation scaffolder that allows for this kind of formatting.

More details about this feature in doc https://docs.mappinggenerator.net/invocation-scaffolding/invocation-scaffolder/
The Premium license can be acquired on the official webpage https://mappinggenerator.net/
If you have any other remarks or suggestions please report them here https://github.com/cezarypiatek/MappingGeneratorIssueTracker


Epic 2.13 Notes Generator

Develop Notes Generator Tool
Description
As an educator, I want to generate concise, structured notes from various types of input so that I can save time and provide students with clear, summarized learning materials. This tool will help streamline the process of breaking down lengthy content into actionable and digestible notes.
The tool should allow users to:

Input content directly or upload files to generate notes.
Provide a focus or topic for the notes to tailor the generated output.
Accept file uploads (one file per prompt) in supported formats:

Upload: CSV, PDF, DOCX, PPT, Plain Text
URLs: YouTube Video, Website, Google Sheets

Generate structured notes based on the input, organized into bullet points, paragraphs, or tables.
Export notes in formats such as plain text, DOCX, or PDF.

Design

Acceptance Criteria
Feature Requirements
Input Handling

[ ] Users can input content directly into a text box.
[ ] Users can upload files (one file per prompt) in the following formats:

[ ] Upload: CSV, PDF, DOCX, PPT, Plain Text
[ ] URLs: YouTube Video, Website, Google Sheets

[ ] Users can specify a focus or topic for the notes to tailor the output.

Notes Generation Logic

[ ] The tool generates notes based on:

[ ] Input content (text or file).
[ ] Specified focus or topic.

[ ] The notes are clear, concise, and structured into:

[ ] Bullet points.
[ ] Paragraphs.
[ ] Tables (optional).

Output Format

[ ] Users can view the generated notes in a clear, editable format.
[ ] Users can export the notes in the following formats:

[ ] Plain Text
[ ] DOCX
[ ] PDF

Technical Implementation
Folder Structure

Create a new folder within app/features/ named notes_generator.

Core Development

[ ] Implement the executor function in core.py with input parameters matching the tool's functionality, including type hints.
[ ] Use tools.py for abstractions and helper functions to keep core.py clean and maintainable.
[ ] Include a metadata.json file defining the input parameters for proper validation.
[ ] Utilize a prompt/ folder for AI-driven generation prompts if necessary.
[ ] Implement logging and error handling as per platform standards.

Unit Tests

[ ] Write unit tests for all functions and classes in core.py and tools.py using PyTest.

[ ] Tests cover:

[ ] Normal operation with valid inputs.
[ ] Edge cases and invalid inputs.
[ ] Error handling and exceptions.

Code Quality and Documentation

[ ] Ensure code follows best practices for readability and maintainability.

[ ] Use consistent naming conventions.
[ ] Include type hints for all functions and methods.
[ ] Avoid redundant or unnecessary code.

[ ] Add docstrings to all functions and classes explaining their purpose and usage.
[ ] Provide comments within the code where necessary to explain complex logic.

Integration and Testing

[ ] Ensure the feature integrates seamlessly with the existing Marvel AI platform.

[ ] The executor function is compatible with the router.py layer for request handling.
[ ] Inputs are validated as per the platform's requirements.

[ ] Test the entire feature from input handling to output generation.

[ ] Verify that users can input their data and receive the expected outputs without errors.

Sample Input and Output
Input
Content:
"Photosynthesis is a process used by plants to convert sunlight into energy. It involves the use of carbon dioxide and water to produce glucose and oxygen."
Focus:

Summarize the key steps of photosynthesis.

Output
Generated Notes:

Photosynthesis Overview:

Plants use sunlight to produce energy.
Inputs: Carbon dioxide and water.
Outputs: Glucose and oxygen.

Key Steps:

Sunlight absorbed by chlorophyll.
Water split into oxygen and hydrogen.
Carbon dioxide converted into glucose.

Resources

Design Mockup

Please ensure that each of these criteria is fulfilled for the issue to be considered complete.

I found this project interesting and I have started working on it. Feel free to reach out for collaboration, questions or comments.

Hey @Haryohmi, you can definitely pick up the issue and work on it. Our process for issue assignment is focused on first to PR so multiple contributors can work on an issue and can bring in their own improvements/ideas to the issue as well. Read more here

@AaronSosaRamos Thank you!

#130 Needs to be checked against acceptance criteria @yunusj

@Haryohmi do you want to work together?

@Haryohmi I just onboarded a few days ago and found this under good first issues; I have almost no .py experience (almost all Java), so if you want to, we could work on this together, and I think it would be a great learning/collab opportunity!

@Haryohmi I just onboarded a few days ago and found this under good first issues; I have almost no .py experience (almost all Java), so if you want to, we could work on this together, and I think it would be a great learning/collab opportunity!

Oh greet!
It's nice to have you on here. Sure we can collab and work together on it. Though, I've started working on it, nonetheless, it'll be a great opportunity to collaborate.